質問

EG 2つの要素のリストが与えられます l = [1,0] 繰り返して、可能なすべての5要素のバリエーションを作成する必要があります。 itertools.combinationsを試しましたが、私が望んでいたものを教えてください。

与えられた n = 2k = 5 私は得るべきです 2^5 = 32 要素と結果は次のようになります。

results = [11111,11110,11101,11100,11001,11011,11010,...00000]
役に立ちましたか?

解決

>>> import itertools
>>> ["".join(item) for item in itertools.product("10", repeat=5)]
['11111', '11110', '11101', '11100', '11011', '11010', '11001', '11000', '10111', 
'10110', '10101', '10100', '10011', '10010', '10001', '10000', '01111', '01110', 
'01101', '01100', '01011', '01010', '01001', '01000', '00111', '00110', '00101', 
'00100', '00011', '00010', '00001', '00000']

他のヒント

これは、0..k^n-1を超えてループし、ベースnの現在のインデックスを出力することに相当します。これにより、問題がベース変換に減少します(これは本質的に長い分裂に相当します)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top