import itertools


def build_full_factorial(factor_count):
    """Builds a full 2^K factorial design.

    The resulting design will contain every combination of -1 and +1 for the
    number of factors given.
    """
    factor_data = []
    for run in itertools.product([-1, 1], repeat=factor_count):
        factor_data.append(list(run))
    return factor_data