#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]; unsigned int level = 0; for(unsigned j=0; j= numletters) { --level; i[level] = 0; } else { output[level]=letters[ i[level] ]; if(level-1 >= length) { //I will make sure I got the headers for this when the rest compiles std::cout << output << std::endl; } ++level; ++i[level]; } } delete[] output; delete[] i; } int main(int argc, char *argv[]) { char letters[]={'a','b','c'}; dumpletters(2,letters,3); std::cin.ignore(); std::cin.getline(); return 0; }