Алгоритм всех возможных варианты сборки между массивами
Есть int массив вида [1,4,8,2,99,500,33,24,75,23] - числа от 1 до 999, не повторяются, размер может быть любым.
Есть массив массивов вида [ [1,4], [99,500,33], [100,102], [500, 22], [75,23], [8,2,99,500,33,24] .... ]
И массив возможных переходов вида [ [4,8], [24,75], [300,1], ... ]
Нужно найти все возможные варианты построения массива 1 из массивов 2 и 3.
К примеру, результат должен быть [ [1,4], [8,2,99,500,33,24], [75,23] ], [...], ...