proc permlist k . list[] .
for i = k to len list[]
swap list[i] list[k]
call permlist k + 1 list[]
swap list[k] list[i]
.
if k = len list[]
print list[]
l[] = [ 1 2 3 ]
call permlist 1 l[]