#include <iostream>
using namespace std;
int k=0;
int fnct(string input, int index, string output, string out[]) {
if (index >= input.length()){
out[k++] = output;
return 1;
}
int number = input[index]-'0';
int count=fnct(input, index+1, output+(char)('a'+ number-1),out);
if(index<input.length()-1){
number = number*10 + input[index+1]-'0';
if(number < 26) {
count+=fnct(input, index+2, output+(char)('a'+ number-1),out);
}
}
return count;
}
void swap(char& a, char& b){
char temp = a;
a=b;
b=temp;
}
void fn(string in, int index){
if(index == in.length()){
cout<<in<<endl;
return;
}
for(int i=index;i<in.length();++i){
swap(in[index],in[i]);
fn(in,index+1);
swap(in[index],in[i]);
}
}
int main() {
// your code goes here
fn("abc",0) ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgaz0wOwppbnQgZm5jdChzdHJpbmcgaW5wdXQsIGludCBpbmRleCwgc3RyaW5nIG91dHB1dCwgc3RyaW5nIG91dFtdKSB7CglpZiAoaW5kZXggPj0gaW5wdXQubGVuZ3RoKCkpewoJCW91dFtrKytdID0gb3V0cHV0OwoJCXJldHVybiAxOwoJfQoJaW50IG51bWJlciA9IGlucHV0W2luZGV4XS0nMCc7CglpbnQgY291bnQ9Zm5jdChpbnB1dCwgaW5kZXgrMSwgb3V0cHV0KyhjaGFyKSgnYScrIG51bWJlci0xKSxvdXQpOwoJaWYoaW5kZXg8aW5wdXQubGVuZ3RoKCktMSl7CgkJbnVtYmVyID0gbnVtYmVyKjEwICsgaW5wdXRbaW5kZXgrMV0tJzAnOwoJCWlmKG51bWJlciA8IDI2KSB7CgkJCWNvdW50Kz1mbmN0KGlucHV0LCBpbmRleCsyLCBvdXRwdXQrKGNoYXIpKCdhJysgbnVtYmVyLTEpLG91dCk7CgkJfQoJfQoJcmV0dXJuIGNvdW50Owp9Cgp2b2lkIHN3YXAoY2hhciYgYSwgY2hhciYgYil7CgkKCWNoYXIgdGVtcCA9IGE7CglhPWI7CgliPXRlbXA7Cn0KCnZvaWQgZm4oc3RyaW5nIGluLCBpbnQgaW5kZXgpewoJCWlmKGluZGV4ID09IGluLmxlbmd0aCgpKXsKCQkJY291dDw8aW48PGVuZGw7CgkJCXJldHVybjsKCQl9CgkJCgkJZm9yKGludCBpPWluZGV4O2k8aW4ubGVuZ3RoKCk7KytpKXsKCQkJc3dhcChpbltpbmRleF0saW5baV0pOwoJCQlmbihpbixpbmRleCsxKTsKCQkJc3dhcChpbltpbmRleF0saW5baV0pOwoKCQl9CgkKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglmbigiYWJjIiwwKQk7CglyZXR1cm4gMDsKfQ==