Hola quería generar un diccionario pero que no fuese de la a-z sino seria algo como AAxxxxxxx ZZxxxxxxx seria numero y letras creo que
Es AA0xxxxxx pero no lo se seguro es de 9 caracteres
#!/usr/bin/python
#
# :: Invasion Tux
# :: Ultima modificacion : miercoles, 14 de enero de 2009
# :: Script realizado por makiolo (makiolo@gmail.com) (Licencia Creative Commons con reconocimiento)
# :: Dependencias : python
#
import sys, math
from time import time, localtime, strftime
########################### CONFIGURACION #########################
LONGITUD = 6
ALFABETO = "abcdefghijklmnopqrstuvwxyz0123456789_-."
####################################################################
########################## FUNCIONES ###############################
def getVariacionesConRepeticion(ALFABETO , LONGITUD):
sumatorio = 0
for i in range(LONGITUD):
producto = 1
for j in range(i+1):
producto = producto * len(ALFABETO)
sumatorio = sumatorio + producto
return sumatorio
def eventoPalabraGenerada(palabra):
print palabra
####################################################################
##################### VARS AUXILIARES ##############################
DEBUG = True
VERBOSE = True
variacionesConRepeticion = getVariacionesConRepeticion(ALFABETO , LONGITUD)
inicioReloj = time()
cont = 0
progreso = 0
####################################################################
while LONGITUD > 0:
try:
contadores = [] # ponemos los contadores a 0
for i in range(LONGITUD):
contadores.append(0)
fin = False
while not fin:
if DEBUG == True:
palabra=[] # Creas una lista vacia (y liberas de paso)
for i in range(LONGITUD):
palabra.append(ALFABETO[contadores]) # Vas metiendo al final letra a letra
eventoPalabraGenerada("".join(palabra)) # Envias a tu callback tada la lista unida
if VERBOSE == True:
if (cont % 600000 == 0) and (cont != 0):
progreso = cont*100.0/variacionesConRepeticion # porcentaje hasta ahora
progreso = round(progreso , 2)
finReloj = time() - inicioReloj # finReloj es lo que esta tardando el calculo
velocidad = cont / finReloj # palabras procesadas por segundo
velocidad = round(velocidad , 2)
estimado = finReloj * variacionesConRepeticion / cont # es lo que se estima en realizar todo el proceso
restante = estimado - finReloj # es lo que se estima en realizar lo restante
restante = restante / 60 / 60 # lo pasamos a horas
restante = round(restante , 2)
sys.stderr.write(str(progreso)+"% - Quedan "+str(restante)+" horas. La velocidad es de "+str(velocidad)+" palabras/seg\n")
cont = cont + 1
actual = LONGITUD - 1 # Pongo actual a la derecha del todo
contadores[actual] = contadores[actual] + 1 # Sumo 1 a las unidades
while(contadores[actual] == len(ALFABETO)) and not fin: # Propago el carry
if(actual == 0):
fin = True # FIN
else:
contadores[actual] = 0 # reinicia el actual contador
actual = actual - 1 # avanza a la izquierda
contadores[actual] = contadores[actual] + 1 # y le sumo 1
LONGITUD = LONGITUD - 1 # combinaciones para uno menos
except KeyboardInterrupt:
sys.stderr.write("Interrumpido por el usuario\n")
fin = True # Fuerzo las condiciones de salida
LONGITUD = 0
if VERBOSE == True:
sys.stderr.write("Terminado al "+str(progreso)+"% - Realizadas "+str(cont)+" combinaciones de "+str(variacionesConRepeticion)+"\n")
Algo por el estilo q no sea difícil .