برای بدست آوردن تمام حالات nرو، که شامل اعداد و حروف است، ابتدا تعدادی آرایه تعریف می کنیم که هر کدام شامل یکی از حروف و یا اعدادی هستند که می خواهیم در کنار حروف به کار بریم. برای هر موردی که در حال حاضر در آن قرار داریم، تمام حروف و اعداد موجود در آرایه را به آن اضافه می کنیم و بعد این عملیات را به صورت بازگشتی برای تمام حالات انجام می دهیم.
کد زیر یک مثال از این الگوریتم است:
#include <iostream>
#include <string>
using namespace std;
void n_permutations(string str, string prefix, int n) {
if (n == 0) {
cout << prefix << endl;
} else {
for (int i = 0; i < str.size(); i++) {
n_permutations(str, prefix + str[i], n - 1);
}
}
}
int main() {
string input;
int n;
cout << "Enter input string: ";
cin >> input;
cout << "Enter number of characters in output strings: ";
cin >> n;
n_permutations(input, "", n);
return 0;
}