A matrix in which each row is a permutation of the values in x.
Details
permute calculates the number of permutations and creates a matrix
with that number of rows. It fills the first column with the elements of
x in groups large enough to cover the permutations of a vector with
one less value. It then fills the remaining columns by calling itself with
all values except the one in the first row of the current block. If
x has only two values, it returns the trivial permutation of x
and its reverse.