\C Publication syntax permute (k) list (l): if k == l.Count print row l as tuple return for i = from k upto l.Count row l swap i with k permute k+1 list l row l swap k with i row (l) swap (i) with (k): t = l[i] l[i] = l[k] l[k] = t main (parms):+ permute 1 list [1, 2, 3] \ row literal, not tuple