递归解法:
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串
* @return string字符串一维数组
*/
func Permutation( str string ) []string {
// write code here
l := len(str)
if l == 1 {
return []string{str}
}
var strings []string
m := make(map[string]int)
for i:=0;i<l;i++{
r := str[i:i+1]
strs := Permutation(str[0:i]+str[i+1:])
for _,st := range strs {
m[r+st]++
}
}
for v := range m {
strings = append(strings,v)
}
return strings
}