#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{
int a[]={1,2,3};
do{
printf("%d %d %d\n",a[0],a[1],a[2]);
}while(next_permutation(a,a+3));
return 0;
}
next_permutation函数把所有的排列按照字典树输出来,全排列算法
对于字符串的输入同样适用,例如输入asd
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
string str;
cin>>str;
sort(str.begin(),str.end());
cout<<str<<endl; //把第一个输出即ads
while(next_permutation(str.begin(),str.end()))
{
cout<<str<<endl; //输出剩下的5个
}
}