2016-03-28 30 views
-1

比方說,我有這樣的名單:如何在Python中的特定範圍內獲得列表的可能組合?

letters = list('ABCDEFGHIJKLMNOPQ') 

我怎樣才能得到一個範圍的只有4個字符之內這個名單可能的組合?

所以我的結果集是,例如:

  • ABC
  • NIJK
  • Ç
  • FK
  • QACD
  • ....

我嘗試過這樣,但是這樣做ES似乎沒有工作:

for L in range(0, 4): 
    for subset in itertools.permutations(letters, L): 
     word = ''.join(subset) 
     print(word) 
+0

「射程只有4個字符之內」。你是指所有可能的字符串最多4個字符的子集? –

+2

您可以擴展*「似乎不工作」*? – jonrsharpe

+0

準確地說,我想要所有可能的子集,但它們應該最多4個字符。此刻,我還得到超過4個字符的字符串。 –

回答

4

你需要從0至3從1數到4,而不是:

result = [] 
for L in range(1, 5): 
    for subset in itertools.permutations(letters, L): 
     result.append(''.join(subset)) 
相關問題