逆パワー セット ジェネレーター (パワー セットを最大から最小に戻すジェネレーター) を取得しようとしています。
これが標準のパワーセットジェネレーターです(この質問を参照):
from itertools import chain, combinations
def powerset_generator(i):
for subset in chain.from_iterable(combinations(i, r) for r in range(len(i)+1)):
yield list(subset)
これが生成されます:
[]
[1]
[2]
[3]
[1, 2]
[1, 3]
[2, 3]
[1, 2, 3]
そして、私はこれを試みています:
[1, 2, 3]
[1, 2]
[1, 3]
[2, 3]
[1]
[2]
[3]
[]
ジェネレーターを逆にして、後ろから作動させる方法はありますか?