code: function createSerialCombinations(arr, fn) {
    var combinations = [''];
    var newCombinations;
    arr.forEach(function (elements) {
      newCombinations = [];
      elements.forEach(function (element) {
        combinations.forEach(function (combination) {
          newCombinations.push(fn(combination, element));
        });
      });
      combinations = newCombinations;
    });
    return combinations;
  }
docs: arr = [[list of 1st el], [list of 2nd el] ... etc]