def faster_subset_sum(items: list, target: int, partial=[], results=[]) -> list:
    """
    Determine all combinations of list items that add up to the target
    
    Args:
        numbers (list): A list of values
        target (int): The total that the values need to add up to
        partial (list, optional): Used by the function. Defaults to [].
        results (list, optional): Used by the function. Defaults to [].

    Returns:
        list: The list of valid combinations
    """
    total = sum(partial)

    # check if the partial sum is equals to target, and if so
    # add the current terms to the results list
    if total == target:
        results.append(partial)
        
    # if the partial sum equals or exceed the target, no point in recursing through remaining terms.
    if total >= target:
        return []

    for i, item in enumerate(items):
        remaining_numbers = items[i + 1:]
        faster_subset_sum(remaining_numbers, target, partial + [item], results)

    return results