import itertools


def binary_cartesian_product(nb_bits: int):
    """
    Compute binary possibilities of an nb_bits variable.
    """
    ranges = [range(0, 2) for i in range(nb_bits)]
    # In possibilities, we compute the nb_bits cartesian product of set([0, 1]}
    possibilities = list()
    for xs in itertools.product(*ranges):
        possibilities.append(tuple([*xs]))

    return possibilities