Comment obtenir correctement toutes les combinaisons de nombres en Python
📁 Sujets avancés sur Python, IA
Voici le code :
import itertoolsfor i in itertools.combinations_with_replacement('0123456789', 4): print(''.join(i))Je dois obtenir toutes les combinaisons de chiffres par 4 avec répétitions. Une partie de la sortie du programme :
00000001000200030004000500060007000800090011001200130014001500160017001800190022002300240025Dites-moi, pourquoi après 0009 vient 0011, et non 0010 ? De même avec 0022.
Et si en une seule ligne via une fonction lambda :
from itertools import chaindivs = lambda n: chain(*((d, n // d) for d in range(1, int(n ** 0.5) + 1) if n % d == 0))print(list(divs(1568)))Résultat :
[1, 1568, 2, 784, 4, 392, 7, 224, 8, 196, 14, 112, 16, 98, 28, 56, 32, 49]Mise à jour, une variante plus lourde :
Connectez-vous pour laisser une réponse