#include<iostream> #include<string> using namespace std; void permute(string str,int x,string print) {
int mask=0; if(!x){cout<<print<<endl;return;} for(int i=0;i<x;i++) { if(mask&(1<<(str[i]-'a')))continue; if(i && i+1<x) permute(str.substr(0,i)+str.substr(i+1,x-i),x-1,print+str[i]); else if(i) permute(str.substr(0,i),x-1,print+str[i]); else permute(str.substr(1,x-1),x-1,print+str[i]); mask=mask^(1<<(str[i]-'a')); } } int main() { string str,print=""; cin>>str; permute(str,str.size(),print); return 0; } -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.