Permutations: Difference between revisions

Line 6,268:
iterator permutations[T](lis: var seq[T]): var seq[T] =
var
js = newSeq[int](max(2, lis.len))
i = 1
while true:
Line 6,278:
break
i += 1
if i =>= lis.len: break
let k = if (i and 1) == 0: 0 else: js[i]
swap lis[i], lis[k]