2011-09-07 60 views
2

鑑於例如一個列表兩個元件l = [1,0]我需要創建重複的所有可能的5-元件變化。我試過itertools.combinations,但給我我想要的。變化與重複

按照給定的n = 2k = 5我應該得到2^5 = 32元素,其結果應該是這樣的:

results = [11111,11110,11101,11100,11001,11011,11010,...00000] 
+0

什麼是你的問題?到目前爲止,你只是發表了一個聲明。請你嘗試過什麼已經,在那裏你卡住了,你需要知道什麼進行更新的信息您的問題。 – blubb

+0

這看起來像hoemwork,請相應地標記它。 –

+0

不是功課。 –

回答

8
>>> 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'] 
1

這相當於遍歷0..k^n-1和輸出基地中目前指數ñ。這將您的問題減少到基礎轉換(這基本上等同於長分區)。

+0

有bin()可以轉換爲二進制。 –

+0

是的,但他想任意基地(N)。基礎二是問題中的一個例子。無論如何 - 至少對於Python而言 - Tim的答案會更好。 – Ofir