Quel est le meilleur moyen de générer toutes les combinaisons d'une liste, où chaque combinaison contient tous les éléments de la liste et où vous pouvez combiner d'autres éléments.Générer toutes les combinaisons ordonnées d'une liste, où chaque combinaison comprend tous les éléments
Par exemple, pour une liste ['a','b','c']
, j'aime générer:
['a','b','c']
['ab','c']
['a','bc']
['abc']
Je trouve un peu semblable à: Python: Generating all ordered combinations of a list. Mais celui-ci ne se soucie que des tranches. Je veux toutes les combinaisons qui prennent chaque article de la liste. Y a-t-il une fonction intégrée d'itertools qui peut être utilisée pour générer la réponse?
La liste pourrait aussi être des nombres qui pourraient avoir des valeurs en double. Par exemple: [1,2,1]
devrait générer:
[1,2,1]
[12,1]
[1,21]
[121]
Je pourrais essayer d'utiliser le code du lien, mais au lieu de générer des combinaisons des éléments, je générer la base de combinaisons sur l'indice de la liste. Où je prends toutes les combinaisons qui commencent par 0, puis recherchez l'élément suivant et recherchez toutes les combinaisons qui commencent par cet élément et ainsi de suite. Je ne pense pas que ce serait efficace cependant.
Cela semble fonctionner très bien. J'essaie juste de voir comment ça fonctionne. – user1179317
Je viens de comprendre votre fonction de générateur, c'est plutôt cool. Merci d'avoir répondu. – user1179317