Le problème est que nous somme obligé d'importer itertools. J'ai coder pour essayer et ça fonctionne. Voici le code :
from itertools import product
a = [['mange', 'mangé'],['ont', 'ton'],['onagre', 'orange', 'orangé', 'organe', 'rongea']]
print(list(product(*a)))
Ça donne : [('mange', 'ont', 'onagre'), ('mange', 'ont', 'orange'), ('mange', 'ont', 'orangé'), ('mange', 'ont', 'organe'), ('mange', 'ont', 'rongea'), ('mange', 'ton', 'onagre'), ('mange', 'ton', 'orange'), ('mange', 'ton', 'orangé'), ('mange', 'ton', 'organe'), ('mange', 'ton', 'rongea'), ('mangé', 'ont', 'onagre'), ('mangé', 'ont', 'orange'), ('mangé', 'ont', 'orangé'), ('mangé', 'ont', 'organe'), ('mangé', 'ont', 'rongea'), ('mangé', 'ton', 'onagre'), ('mangé', 'ton', 'orange'), ('mangé', 'ton', 'orangé'), ('mangé', 'ton', 'organe'), ('mangé', 'ton', 'rongea')]
Dans l'idée c'est ça mais je n'ai rien crée. Ensuite j'ai essayé ce que tu m'as donné Blaff2 mais je n'arrive pas à avoir ce que je veux. Voici le code :
def product(*args, repeat=1):
pools = [tuple(pool) for pool in args] * repeat
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
for prod in result:
yield tuple(prod)
for i in product(([['mange', 'mangé'],['ont', 'ton'],['onagre', 'orange', 'orangé', 'organe', 'rongea']]), repeat=1):
print(i)
Et ça me donne : (['mange', 'mangé'],)
(['ont', 'ton'],)
(['onagre', 'orange', 'orangé', 'organe', 'rongea'],)