1.递归
#include<iostream> using namespace std; void swap(char* a,char* b){ char temp = *a; *a=*b; *b=temp; } void Permutation(char* pStr, char* pBegin) { if(*pBegin == '\0'){ cout<<pStr<<endl;} else{ for(char* pCh = pBegin; *pCh != '\0'; ++ pCh){ swap(pCh,pBegin); Permutation(pStr, pBegin + 1); swap(pCh,pBegin); } } } int main(){ char string4[] = "abc"; char* pStr=string4; if(pStr == NULL) return 0; Permutation(pStr,pStr); return 0; }