permutations: Modify generic signature

Since we have an array of symbols when initialising the
PermutationGenerator, it is possible to instantiate an array of the
required type, instead of requiring a T[] to tell us what size of
permutation space the user is wanting to generate.