Make permutation space
Generates a list of tuples containing n_permutations of the given elements. This will be used later in make_combination_space so you can have the same permutation and combination spaces for different games played by the same set. Probably makes things more reproducible! The elements themselves can be anything I guess, I tried str (names/labels) and integers (indexes), and tuples (edges, from-to style). Briefly, the permutation space of (A,B,C) is something like this:
(A,B,C) (B,C,A) (C,B,A) (A,C,B) (C,A,B) (B,A,C) (C,A,B) . . . As you might have seen, there might be repetitions for small set of players and that's fine.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
| elements | list | A list of players to be shuffled n times. | required | 
| n_permutations | int | Number of permutations, Didn't check it systematically yet but just based on random explorations I'd say something around 1_000 is enough. | required | 
| pair | Optional[Tuple] | pair of elements that will always be together in every permutation | None | 
| rng | Optional[Generator] | Numpy random generator object used for reproducable results. Default is None. | None | 
| random_seed | Optional[int] | sets the random seed of the sampling process. Only used when  | None | 
Returns:
| Type | Description | 
|---|---|
| list[tuple] | Permutation space as a list of lists with shape (n_permutations, len(elements)) |