package main
import "fmt"
func permutation(S string) []string {
m := make(map[string]bool)
m[S] = true
l := len(S)
for i := 0; i < l-1; i ++ {
for j := i + 1; j < l; j ++ {
for s, _ := range m {
t := []byte(s)
t[i], t[j] = t[j], t[i]
m[string(t)] = true
}
}
}
ret := make([]string, len(m))
i := 0
for s, _ := range m {
ret[i] = s
i ++
}
return ret
}
func main() {
fmt.Println(permutation("1223"))
}
输出
[1223 2213 3212 2321 1232 2231 2123 3221 3122 1322 2312 2132]