2017-06-20 61 views
0

Python中是否有一種簡單的方法來計算給定長度的兩個整數使用一個或兩個整數的所有可能的排列。例如,如果我的整數是1和2,並且我想計算所有可能的長度爲3的排列,我應該得到(111,112,121,122,211,212,221,222)。我認爲itertools.permutations會工作,但顯然如果長度>整數的數量,沒有項目被返回。給定長度的兩個整數的Python排列

+0

謝謝,這是我需要什麼。我不知道爲什麼它沒有出現在我的搜索中。 – henrypj

回答

-1
import itertools 

length = 3 
possible_int = [1,2] 
all_permutations = [] 
for i in range(length+1): 
    first = [possible_int[0]]*i 
    second = [possible_int[1]]*(length-i) 
    permutations = [list(x) for x in itertools.permutations(first+second)] 
    for element in permutations: 
     if element not in all_permutations: 
      all_permutations.append(element) 

print(all_permutations) 
1

如果您要查找的內容很簡單:

[(1, 1), (1, 2), (2, 1), (2, 2)] 

然後看到Permutation of x length of 2 characters,並且此線程是重複的。

或者,如果你要找的是什麼

[11, 12, 21, 22] 

然後使用:

import itertools as it 
print([int(str(i) + str(j)) for i, j in it.product(l, repeat=2)]) 
[11, 12, 21, 22] 
相關問題