At each position, try all unused elements. Track which elements are used with a boolean array.
If current permutation has elements, add to results.
For each unused element, mark it used, add to current, recurse, then backtrack.
The number of permutations is .