1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import itertools
import re
def association(liste1, liste2, combinaison) :
resultat = set()
for n in itertools.product(liste1, liste2, repeat=combinaison) :
setn = set(n)
if len(setn) == len(n) :
liste = [v for v in re.split('(\w{2})', ''.join(n)) if v]
resultat.add(tuple(sorted(liste)))
return sorted(resultat)
a = ["A","B"]
b = ["C", "D"]
# [('AC', 'BD'), ('AD', 'BC')]
print(association(a, b, 2))
a = ["A","B","C"]
b = ["D","E","F"]
# [('AD', 'BE', 'CF'), ('AD', 'BF', 'CE'), ('AE', 'BD', 'CF'), ('AE', 'BF', 'CD'), ('AF', 'BD', 'CE'), ('AF', 'BE', 'CD')]
print(association(a, b, 3)) |
Partager