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