#include <iostream>
void print_permutations(std::string s, int i, int len) {
if (i == len) {
std::cout << s << "\n";
}
else {
for (int j = i; j <= len; j++) {
std::swap(s[i], s[j]);
print_permutations(s, i + 1, len);
std::swap(s[i], s[j]);
}
}
}
int main(void) {
std::string s = "abcd";
print_permutations(s, 0, s.size() - 1);
}
/*
abcd
abdc
acbd
acdb
adcb
adbc
bacd
badc
bcad
bcda
bdca
bdac
cbad
cbda
cabd
cadb
cdab
cdba
dbca
dbac
dcba
dcab
dacb
dabc
*/