1 #include <stdio.h> 2 #include <string.h> 3 4 void go(char *str1,char *str2) 5 { 6 if(!str1 || !str2) 7 return; 8 if(!*str2) 9 { 10 printf("%s\n",str1); 11 return ; 12 } 13 for(char * tmp=str2;*tmp;tmp++) 14 { 15 char temp=*tmp; 16 *tmp=*str2; 17 *str2=temp; 18 go(str1,str2+1); 19 *str2=*tmp; 20 *tmp=temp; 21 } 22 } 23 int main() 24 { 25 char str[]={‘1‘,‘2‘,‘3‘,‘4‘,‘\0‘}; 26 go(str,str); 27 return 0; 28 }
原文:http://www.cnblogs.com/cocos2d-html/p/3572516.html