Permutations with Repetitions (Algorithm 306 [G6])
CACM July, 1967
Bratley, P.
