def generate_state_table(p):
    """
    generates table of state-integers that are allowed by the symmetries
    of the model
    Args:
        p - dictionary that contains the relevant system parameters
    Returns:
        state_table - list of all state_numbers that belong to the relevant
            Hilbertspace
    """
    # generate list of state_numbers which are allowed by the symmetries
    state_table = []
    for i in range(int(2**p['N'])):
        state_table.append(i)
    return state_table