code: function fast(source) {
          var i = source.length;
  
          while (i--) {
            combinations.push(source.slice(0, i + 1));
            if (i === 1) fast(source.slice(i));
          }
  
          return combinations;
        }
docs: Fast iterator for the combinations
  
  @param {Array} source
  @returns {Array} combinations
  @api private