У меня есть наборы S1 = {s11, s12, s13), S2 = {s21, s22, s23) и так далее до тех пор, пока SN.I нужно генерировать все перестановки, состоящие из элементов S1, S2..SN .. таких что в каждом из наборов есть только 1 элемент.
Например:
S1 = {a,b,c}
S2 = {d,e,f}
S3 = {g,h,i}
Мои перестановки были бы:
{a,d,g}, {a,d,h}, {a,d,i}, {a,e,g}, {a,e,h}....
Как мне поступить? (Я мог бы в случайном порядке взять 1 из каждого и объединить их, но это даже в моих знаниях плохая идея).
Ради общности предположим, что в каждом наборе есть 'n' элементов. Я смотрю на реализацию этого в C. Обратите внимание, что 'N' и 'n' не являются фиксированными.