与数字排列基本相同。
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
bool used[10];
vector <string>ans;
string path;
void dfs(string line, int u)
{
if(u==line.size())
{
ans.push_back(path);
}
for(int i=0;i<line.size();++i)
{
if(used[i]==false)
{
path[u]=line[i];
used[i]=true;
dfs(line,u+1);
used[i]=false;
}
}
}
int main(){
string line;
cin>>line;
sort(line.begin(),line.end());
path=line;
dfs(line,0);
for(auto l : ans)cout<<l<<endl;
return 0;
}