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

(なお、print文で簡易デバッグをしたところ、文字列を返すときのreturn文は実行されているようです。)