Todas las conbinaciones posibles en texto plano

locovicen
20 de Agosto del 2009
hola llevo dias intentado realizar un programa que haga lo siguiente: quiero hacer un programa en el cual le pregunte al usuario cuantos caracteres quiere que tenga una clave por ejemplo 3, despues que le pregunte que tipo de caracteres si numero letras o los dos, luego el prograba debe escribir en un archivo todas las conbinaciones posibles 000 001 002 003... aaa aab aac... 000 00a

pero no lo consigo sin saber la longitud de los caracteres, ¿alguien tiene una idea?
Por ahora e escrito esto nose si voy por un camino demasiado complicado...

#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

int main(){
int cantidad;//es la cantidad de caracteres que tendran las claves
vector <int> caracteres;//los vectores empiezan 0,1,2....(cantidad-1)


cin >> cantidad;//le pido al usuario la cantidad de caracteres que quiere que tenga la clave

//**********************************************************************************
//**********************************************************************************
//**********************************************************************************

for (int indice=0;indice<cantidad;indice++){

caracteres.push_back(0);

}//for ;creo las casillas que me pide el usuario 'cantidad' en el vector y las relleno con ceros

//**********************************************************************************
//**********************************************************************************
//**********************************************************************************




int valor=caracteres.size()-1,contador=0;
ofstream fout("archivo");


for (int indice=0;indice<=9;indice++){
caracteres[valor]=indice;



cout << caracteres[0]<<" ";
cout << caracteres[1]<<" ";
cout << caracteres[2]<<" ";
cout << caracteres[3] << endl;//los cout y fout es para comprobar el
//funcionamiento con 4 caracteres

fout << caracteres[0] << " ";
fout << caracteres[1] << " ";
fout << caracteres[2] << " ";


}//for;contador,cuenta de cero a nueve y sale

//como continuo para que cambie a la casilla anterior del vecto y luego pase a la ultima y asi asta el final?? es como contar simplemente,
//pero con vectores y despues de tener el algoritmo simplemente seria cambiarlo con el codigo ascii para los caracteres

fout.close();

return 0;

}


¿Alguien tiene alguna idea?