#include <iostream>
using namespace std;
void fun(string& s,bool* flag,string cur){
    if(s.size()==cur.size()){
        cout<<cur<<endl;
        return;    
    }
    for(int i=0;i<s.size();++i){
        if(flag[i]==false){
            flag[i]=true;
            fun(s,flag,cur+s[i]);
            flag[i]=false;
        }
    }
}
int main() {
    string str;
    cin>>str;
    bool*flag=new bool[str.size()];//默认是false,有的编译器不一定是,所以需要自己去初始化为false
    fun(str, flag,"");
}
// 64 位输出请用 printf("%lld")

一个递归直接拿下