Des combinaisons sans l'aide de “itertools.les combinaisons”

Ce que j'avais besoin de faire est de créer des combinaisons de deux éléments à la fois.

si une liste contient: seq = ['A', 'B', 'C']
la sortie serait com = [['A', 'B'], ['A', 'C'], ['B', 'C']]

tout cela sans "itertools.les combinaisons" la méthode.

J'avais l'habitude d'utiliser ce code pour les permutations. Mais comment pourrais-je modifier le code pour le faire fonctionner avec les combinaisons?

def permute(seq):

    if len(seq) <= 1:
        perms = [seq]
    else:
        perms = []
        for i in range(len(seq)):
            sub = permute(seq[:i]+seq[i+1:]) 
            for p in sub:    
                perms.append(seq[i:i+1]+p)

return perms
Pourquoi sans itertools?
L'équivalent de code source pour combinations est sur le itertools page de documentation. Il suffit de copier-coller dans votre fichier.
Oui, je ne peux pas utiliser d'autres méthodes. Merci, je vais jeter un oeil.

OriginalL'auteur user3104548 | 2013-12-24