算法模板:
void permutation1(char* str,int sbegin,int send) //全排列的非去重递归算法
{
if( sbegin == send) //当 sbegin = send时输出
{
for(int i = 0;i <= send; i++) //输出一个排列
cout << str[i]; cout << endl;
}
else
{
for(int i = sbegin; i <= send; i++) //循环实现交换和sbegin + 1之后的全排列
{
swap(str[i],str[sbegin]); //把第i个和第sbegin进行交换
permutation1(str,sbegin + 1,send);
swap(str[i],str[sbegin]); //【注1】交换回来
}
}
}