yieldとreturnを併用したい

とある関数Aは、引数に応じて文字列とリストのどちらかを返します。 リストを返すときにはyieldし、文字列を返すときにはreturnで返したいです。 ところが、文字列を返すときにもgeneratorが返り、使い物になりません。 どうしたらこのような関数を作れますでしょうか。 (なお、print文で簡易デバッグをしたところ、文字…