Paruj kombinacje elementów w słowniku bez powtórzeń

W Pythonie mam taki słownik ...

pleio = {'firstLine': {'enf1': ['54', 'set'], 
                      'enf2': ['48', 'free'], 
                      'enf3': ['34', 'set'], 
                      'enf4': ['12', 'free']}

        'secondLine':{'enf5': ['56','bgb']
                      'enf6': ['67','kiol']
                      'enf7': ['11','dewd']
                      'enf8': ['464','cona']}}

Chciałbym tworzyć sparowane kombinacje bez powtarzania elementów w wewnętrznym słowniku, aby uzyskać wynik podobny do tego ...

{'enf3': ['34', 'set'], 'enf2': ['48', 'free']}
{'enf3': ['34', 'set'], 'enf1': ['54', 'set']}
{'enf3': ['34', 'set'], 'enf4': ['12', 'free']}
{'enf2': ['48', 'free'], 'enf1': ['54', 'set']}
{'enf2': ['48', 'free'], 'enf4': ['12', 'free']}
{'enf1': ['54', 'set'], 'enf4': ['12', 'free']}

Zbudowałem funkcję, która pozwala mi to zrobić ...

import itertools

def pairwise():
    '''
    '''
    leti=[]
    for snp, enfs in pleio.items():        
        for x in itertools.combinations(enfs, 2 ):
            leti.append(x)    
    pleopairs=[]
    for i in leti:
        pipi={}
        for c in i:
            pipi[c]= enfs[c]
        pleopairs.append(pipi)

... ale zastanawiałem się, czy istnieje bardziej skuteczny sposób, jak inna konkretna funkcja z itertools lub inne źródło. Nawiasem mówiąc, znalazłem funkcję o nazwie „parowanie” witertools dokumentacja. Ale nie wiem, jak to przystosować, czy byłoby to możliwe w moim przypadku lub poprawić moją próbę. Jakaś pomoc?

questionAnswers(2)

yourAnswerToTheQuestion