golang 版本
package main
import "fmt"
const N int = 7
var (
n int
arr [N]int
flag [N]bool
)
func dfs(idx int) {
if idx == n {
printArr()
return
}
for i := 0; i < n; i++ {
if !flag[i] {
flag[i] = true
arr[idx] = i + 1
dfs(idx + 1)
flag[i] = false
}
}
}
func printArr() {
for i := 0; i < n; i++ {
fmt.Print(arr[i], " ")
}
fmt.Print("\n")
}
func main() {
fmt.Scanln(&n)
dfs(0)
}