递归

#include 
#include 

using namespace std;

void fun( string a, string b){
    if(a.size() == 0){
        cout << b << endl;
        return ;
    }
    for(int i = 0; i < a.size(); i++){
        b.push_back(a[i]);
        fun(a.substr(0, i) + a.substr(i+1, a.size()), b);    
        b.pop_back();
    }
}

int main()
{
    string a,b; 
    while(cin >> a){
        fun(a,b);
    }
    return 0;
}