Получить все комбинации из N элементов многомерного массива

Я пытаюсь написать алгоритм, чтобы получить все возможные комбинации из N элементов в многомерном массиве из M элементов.

Что-то вроде:

function getCombinations(arr, n){
  ...
}

var arr = [ ["A"],["B","C"],["D","E"]];
var n = 2;

getCombinations(arr,n);

Это должно привести к:

[
["A","B"],["A","C"],["A","D"],["A","E"],
["B","D"],["B","E"],
["C","D"],["C","E"]
]

Количество элементов внутри массива может варьироваться, единственное, что устанавливается, - это количество элементов комбинаций.

Порядок не имеет значения, но вы не можете повторить, я имею в виду["A","B"] == ["B","A"]так что второй не принимать во внимание.

Любая помощь?

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

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