Алгоритм создания всех возможных комбинаций
Я пишу код сетки запасных частей и мне нужно объединить N одномерных точек сетки (записанных в векторной форме) в массив всех возможных точек. Например, можно смешать два вектора (a, b) с (c, d, e), давая следующие точки:
(a, c) (a, d) (a, e) (b, c) (b, d) (b, e)
В Matlab есть функция combvec:
http://www.mathworks.co.uk/help/nnet/ref/combvec.html
Я пишу этот код на Фортране, однако я не могу найти основной алгоритм. Код должен содержать N (N> 1) векторов (т.е. 2,3 ... N), и каждый может иметь разную длину. Кто-нибудь знает алгоритм?