O(1) memory streaming: Uses itertools.permutations (implemented in C) as a generator. Only the current permutation (O(n) bytes) and the running Counter are kept in RAM. No list of all n! permutations ...
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possible ...