Given a set of buckets make all combinations, where only 1 element can come from each bucket.
For example, given the 3 buckets:
[
[1,2],
["a","b"],
["x"]
]
it would return:
[
[1], [2], ["a"], ["b"], ["x"],
[1, "a"], [1, "b"], [1, "x"], [2, "a"], [2, "b"], [2, "x"], ["a", "x"], ["b", "x"],
[1, "a", "x"], [1, "b", "x"], [2, "a", "x"], ["2", "b", "x"]
]