generates all combinations of n elements taken k at a time
generates all permutations of n elements
returns random combinations of n elements taken k at a time
returns generates a random permutation of k elements from a finite set of n elements,
returns random permutations of n elements