Здесь алгоритм для пермутирований с заменой. Я доработал Кодего от:
http://en.wikipedia.org/wiki/ItoaЭто кипит вниз к проблеме корень. Если вы имеете комплект {a, b, c, d, e} и 3 шлица, то вы имеете номера корень 5^3: aaa, aab, aac, aad, aae, aba,…. Получить все по возможности уникально исходы, вы сможете иметь a + оператор так, что a+1 --> b
…
e+1 --> a с носить так как, например:
abe + 1 --> aca
Выход является следующим:
Номер элемента # корень
1 00
2 10
3 20
4 01
5 11
6 21
7 02
8 12
9 22