What you are looking for is the Cartesian product of a list of lists previously asked . Borrowing from the accepted answer to this question, you can do this in Javascript 1.7:
function product() { return Array.prototype.reduce.call(arguments, function(as, bs) { return [a.concat(b) for each (a in as) for each (b in bs)]; }, [[]]); }; function convert(lst) { var solution = []; for (var i = 0; i < lst.length; i++) { solution.push(lst[i][0] + "/" + lst[i][1] + "/" + lst[i][2]); } return solution; }; convert(product(["A", "B", "C"], ["1", "2"], ["a", "b", "c", "d"])); > ["A/1/a", "A/1/b", "A/1/c", "A/1/d", "A/2/a", "A/2/b", "A/2/c", "A/2/d", "B/1/a", "B/1/b", "B/1/c", "B/1/d", "B/2/a", "B/2/b", "B/2/c", "B/2/d", "C/1/a", "C/1/b", "C/1/c", "C/1/d", "C/2/a", "C/2/b", "C/2/c", "C/2/d"]
source share