Buenas, se que esto ya no se leerá pero aqui tienes tu programa en C de la old school:
/*Diccionario Aaaa0000 - Zzzz9999*/
#include <stdio.h>
#include <string.h>
int main (int argc, char *argv[])
{
FILE *fichero;
if (argc!=2){
printf("El programa s'ejecuta de la siguiente manera: ./axelsrk <fichero>\n");
return 1;;}
fichero=fopen(argv[1], "w+");
if (fichero==NULL){
printf("Error al crear el fitxer");
return 1;}
char cadena1[8]="00000000";
int a,b,c,d,e,f,g,h;
for (a=65;a<91;a++){
cadena1[0]=a;
for (b=97;b<123;b++){
cadena1[1]=b;
for (c=97;c<123;c++){
cadena1[2]=c;
for (d=97;d<123;d++){
cadena1[3]=d;
for (e=48;e<58;e++){
cadena1[4]=e;
for (f=48;f<58;f++){
cadena1[5]=f;
for (g=48;g<58;g++){
cadena1[6]=e;
for (h=48;h<58;h++){
cadena1[7]=h;
fprintf(fichero,"%c%c%c%c%c%c%c%c\n",cadena1[0],cadena1[1],cadena1[2],cadena1[3],cadena1[4],cadena1[5],cadena1[6],cadena1[7]);}
}
}
}
}
}
}
}
fclose(fichero);
return 0;
}
Pues ya está. En linux lo ejecutas como ./axelsrk diccionario.txt.
CONSEJO: tarda 95 segundos y genera un archivo de 1,5GB solo desde la Aaaa0000 hasta la Azzz9999 así que mejor corre el primer for por partes, en total serian 37,5GB si no calculo mal.
Si tienes alguna duda ya me diras, chequeare este post de vez en cuando.