2016-03-28 1 views
-1

Disons que j'ai cette liste:Comment obtenir des combinaisons possibles d'une liste dans une plage spécifique en Python?

letters = list('ABCDEFGHIJKLMNOPQ') 

Comment puis-je obtenir les combinaisons possibles de cette liste dans une plage de seulement 4 caractères?

Donc, mon jeu de résultats serait, par exemple:

  • ABC
  • Nijk
  • C
  • FK
  • QACD
  • ....

Je l'ai essayé comme ça, mais ça fait es semblent ne pas travailler:

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

"dans une plage de seulement 4 caractères". Voulez-vous dire tous les sous-ensembles possibles de cette chaîne avec au plus 4 caractères? –

+2

Pourriez-vous développer * "ne semble pas fonctionner" *? – jonrsharpe

+0

Exactement, je veux tous les sous-ensembles possibles, mais ils devraient avoir au plus 4 caractères. En ce moment, je reçois également des chaînes de plus de 4 caractères. –

Répondre

4

Vous devez compter de 1 à 4, pas de 0 à 3:

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