from typing import List
import itertools


def calc_adf_tup(elements: List) -> List:
    """
    compute the tuple list required for ADF featurizer

    Parameters
    ----------
    elements : List
        list of str elements

    Returns
    -------
    adf_tup : List
        list of adf tuples
    """
    if len(elements) != 2:
        raise ValueError("Element must be of length 2")

    adf_tup = [list(p) for p in itertools.product(elements, repeat=3)]
    del adf_tup[3]
    del adf_tup[3]
    return adf_tup