Generar todas las combinaciones posibles de 10 dígitos
trauqnej Mensajes publicados 162 Estado Miembro -
Hola,
Me gustaría crear un programa en Python que registre en un archivo todas las combinaciones posibles de los números 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.
El resultado debe tener únicamente 8 caracteres y un número puede usarse varias veces.
Aquí está mi código:
#importaciones necesarias from itertools import combinations_with_replacement #creación de la lista de los 10 dígitos lista = ["0","1","2","3","4","5","6","7","8","9"] #variable de la incrementación nombre = 0 #bucle de "cálculo" de las combinaciones for i in combinations_with_replacement(liste, 8): nombre += 1 #conversión de la lista en cadena Str_from_liste = "".join(i) #adición de la ocurrencia en un archivo de texto with open("/home/pierre/Bureau/crackpdf/dict.txt", "a") as f: f.write("\n") f.write(Str_from_liste) print(nombre) El resultado no es el esperado: solo 24310 ocurrencias.
¿Alguien tendría una idea?
Agradeciéndoles de antemano
David
3 respuestas
-
Hola
Cuando hablas de repetición de números, ¿significa eso que puedes tener varias veces el mismo dígito en un mismo número?
Por ejemplo, varios ceros: 10 000 000?
Si es así, no hace falta matemática combinatoria, solo basta con hacer un bucle desde el número 10 000 000 hasta el número 99 999 999
Por otro lado, si quieres las combinaciones de cada número que tenga un dígito distinto de la lista que propones, por ejemplo, 12345679
Ahí, sí, solo hay 24 310 combinaciones posibles.
.
Atentamente,
Jordane -
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Embajador 1 588
hola, sugiero usar "product" en lugar de "combinations_with_replacement".
-
hola,
me gustaría ver algo en el estilo:
fic = open("/tmp/fichero.txt",'w') for i in range(100000000): fic.write("{:0>8d}".format(i)+"\n") fic.close()Atentamente,