@permute(t:tab, n:numeric)

returns a new tab which contains the n th permutations of the elements of t. They are factorial s permutations, where s is the size of t.

The first permutation is numbered 0 and corresponds to the permutation which rearranges the elements of t in an array t_0 such that they are sorted increasingly. The tab t_0 is the smallest element amongst all tab that can be done by rearranging the element of t. The first permutation rearranges the elements of in a tab t_1 such that t_0 < t_1 for the lexicographic order and such that any other permutation gives an array t_k lexicographicaly greater than t_0 and t_1. Etc. The last permutation (factorial s - 1) returns a tab where all elements of are in decreasing order.

For example:

       $t := [1, 2, 3]
       @permute($t, 0) == [1, 2, 3]
       @permute($t, 1) == [1, 3, 2]
       @permute($t, 2) == [2, 1, 3]
       @permute($t, 3) == [2, 3, 1]
       @permute($t, 4) == [3, 1, 2]
       @permute($t, 5) == [3, 2, 1]

See also @sort.

See also Tab Related Functions @car,    @cdr,    @clear,    @concat,    @cons,    @copy,    @count,    @dim,    @domain,    @drop,    @empty,    @explode,    @find,    @flatten,    @gnuplot,    @insert,    @iota,    @is_list,    @is_prefix,    @is_subsequence,    @is_suffix,    @lace,    @last,    @listify,    @map,    @max_val,    @median,    @member,    @normalize,    @occurs,    @permute,    @push_back,    @push_front,    @range,    @reduce,    @remove,    @remove_duplicate,    @replace,    @resize,    @reverse,    @rotate,    @scan,    @scramble,    @size,    @slice,    @sort,    @sputter,    @stutter,    @tab_history,    @tab_history_date,    @tab_history_rdate,    @take