2017-06-29 1 views
2

Comment puis-je obtenir une liste de toutes les valeurs possibles d'une liste avec ceux aussi répétées?Obtenez toutes les combinaisons de liste avec des valeurs répétées

J'ai essayé itertools.combination_with_replacement et itertools.permutation mais le premier ordre inversé l'exclure (comme [3, 2, 1]) et le second (plusieurs exclure les valeurs telles que [3, 3, 1]).

je besoin de quelque chose comme ceci:

Exemple:

list = [1, 2, 3] 

results = 
[1, 1, 1] 
[1, 1, 2] 
[1, 1, 3] 
... 
[3, 1, 1] 
[3, 1, 2] 
[3, 1, 3] 
... 

Que puis-je faire en Python pour y parvenir? Merci d'avance.

Répondre

4

Vous cherchez itertools.product, le réglage de la répétition à 3:

>>> from itertools import product 
>>> lst = [1, 2, 3] 
>>> list(product(lst, repeat=3)) 
[(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)] 
+1

merci beaucoup! –