#include using namespace std; #define MAX 20 void jumble(char usedLetters[MAX], int usedCount, char availLetters[MAX], int availCount) { if (availCount == 0) { usedLetters[usedCount] = 0; cout << usedLetters << endl; } else { for (int a = 0; a < availCount; a++) { char availLetter = availLetters[a]; availLetters[a] = availLetters[availCount-1]; // remove availLetter availCount--; usedLetters[usedCount] = availLetter; // append to used usedCount++; jumble(usedLetters,usedCount,availLetters,availCount); availLetters[availCount] = availLetters[a]; // returned last to end availLetters[a] = availLetter; // reintroduced availLetter availCount++; usedCount--; // clipped if off end of used } } } int main() { char usedLetters[MAX]; int usedCount = 0; char availLetters[MAX] = "DRAFIT"; int availCount = strlen(availLetters); jumble(usedLetters, usedCount, availLetters, availCount); }