Bonjour,

Je précise en préambule que je ne suis pas un professionnel ni un étudiant, juste un amateur qui essaye d'apprendre par lui-même python pour sa culture générale.
J'essaie de rédiger un script qui détermine toutes les combinaisons possibles de n éléments pris dans n
par exemple, pour [0,1,2], je voudrais obtenir [0,0,0], [0,0,1], [0,0,2], [0,1,0], [0,1,1], [0,1,2], [0,2,0), [0,2,1], [0,2,2], [1,0,0], [1,0,1], etc... soit 27 éléments (3³)
Si n est fixé, par exemple 3, il suffirait de faire quelque chose comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
liste=[]
	for i in range(3):
		p=[]
		for i1 in range(3):
			for i2 in range(3):
				for i3 in range(3):
					p.append([i1,i2,i3])
 
 
	liste.append(p)
print(liste)
mais pour n quelconque, ce n'est pas possible de procéder comme ça.

En faisant des recherches, j'ai vu qu'il y avait un module itertools qui pourrait résoudre mon problème, mais je voudrais essayer de trouver moi-même, si c'est possible avec mes connaissances.
J'ai vu qu'il y avait la notion de récursivité qui pourrait peut-être convenir mais je n'arrive pas du tout à saisir la logique de cette notion, hors le cas d'une suite définie par récurrence un+1=f(un).
Si vous pouvez me mettre sur la voie, merci d'avance. Si possible avec les notions les plus élémentaires possibles (je sais à peu près manipuler les listes, les dictionnaires, les boucles for et while)