ジェネレーター 'stuff_to_try' があるとします。それらを 1 つずつ試すことができますが、ジェネレーターを通過したいメソッドがあり、そのメソッドが再帰的である場合、各再帰で、最後の再帰が中断した場所ではなく、最初のyield。
def solve(something):
if exit_condition(something):
return
next_to_try = stuff_to_try.next()
while not if_works(next_to_try):
next_to_try = stuff_to_try.next()
solve(do_something(something))
もちろん、再帰関数内で stuff_to_try を定義することもできますが、もっと良い方法はありますか? stuff_to_try.clone().reset() などに相当するものはありますか?