function printResult (a)
for i = 1, #a do
io.write(a[i], " ")
end
io.write("\n")
end
function Permute(a,k)
local len = #a
if(len == k) then
printResult(a)
else
for i=k, len do
a[i], a[k] = a[k], a[i]
Permute(a,k+1)
a[i], a[k] = a[k], a[i]
end
end
end
arr = {"a", "b", "c"}
Permute(arr,1)
输出结果:
>lua -e "io.stdout:setvbuf 'no'" "add.lua"
a b c
a c b
b a c
b c a
c b a
c a b
>Exit code: 0
9.2里在用协程写,直接递归就可以啦!