Алгоритм создания всех возможных комбинаций

Я пишу код сетки запасных частей и мне нужно объединить 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), и каждый может иметь разную длину. Кто-нибудь знает алгоритм?

Ответы на вопрос(2)

Ваш ответ на вопрос