void permutation(*pstr){
if(pstr==null) return;
permutation2(pstr,pstr);;
}
void permutation2(*pstr,*pbegin){
if(*pbegin=='\0'){
printf("%s\n",pstr);
}
else{
for(char *pch=pbegin;pch!='\0';++pch) {
char temp=*pch;
*pch = *pbegin;
*pbegin=temp;
permutation2(pstr,pbegin+1);
char temp=*pch;
*pch = *pbegin;
*pbegin=temp;
}
}
}
输入:字符串 如abc
输出:全排列 abc,bac,cba,acb,bca,cab
把字符串分成两个部分,递归 求解。将开始字符跟后续字符依次交换。