#include void dumpletters (const unsigned int length, char *letters, unsigned int numletters) { char *output = new char[length]; output[length] = 0; unsigned int i[] = new unsigned int[length]; // int (*a)[10]; unsigned int level = 0; for(unsigned j=0; j= numletters) { --level; i[level] = 0; } else { output[level]=letters[ i[level] ]; if(level >= length) { printf("%s\n",output); } ++level; ++i[level]; } } delete output[]; delete i[]; } int main(int argc, char *argv[]) { char letters[]={'a','b','c'}; dumpletters(2,letters,3); return 0; }