#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <fstream>
using namespace std;
const int MAXN=10;
char Arr[MAXN];
int main()
{
//cout << "Hello world!" << endl;
//freopen("input.txt","r",stdin);
int n;
cin>>n;
getchar();
for(int i=0;i<n;i++)
{
gets(Arr);
int len=strlen(Arr);
sort(Arr,Arr+len);//排序,得到p的最小排列
do
{
for(int i=0;i<len;i++)
cout<<Arr[i];//输出排列p
cout<<endl;
}while(next_permutation(Arr,Arr+len));//求下一个排列
cout<<endl;
}
return 0;
}
直接调用next_permutation解决问题