题目描述:
输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。
方法:递归
func permutation( str []byte, i int) { if i > len(str) { return } if i == len(str) -1 { println(string(str[:])) }else { for j := i; j<len(str);j ++ { temp := str[j] str[j] = str[i] str[i] = temp permutation(str,i+1) temp = str[j] str[j] = str[i] str[i] = temp } } } 结果 str :=[]byte{'a','b','c'} permutation(str,0) abc acb bac bca cba cab