#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")
一个递归直接拿下