Avatar ·

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 :

00000001000200030004000500060007000800090011001200130014001500160017001800190022002300240025

Dites-moi, pourquoi après 0009 vient 0011, et non 0010 ? De même avec 0022.

Avatar ·

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

Blogs