from functools import reduce
from operator import mul


def accumulating_product_reduce(items):
    """Calculate the accumulating product of a list.

    Uses functools.reduce.

    Arguments:
        items {[list]} -- List of numbers.

    Returns:
        [list] -- List of accumulating products.

    """
    return [reduce(mul, items[:i+1]) for i in range(len(items))]