from typing import List
import itertools


def get_config_combination_list(settings, default=None) -> List:
    """
    Given a list of hyperparameters return all combinations of that.
    """
    keys = list(settings)
    r = []
    for values in itertools.product(*map(settings.get, keys)):
        d = dict(zip(keys, values))
        if default is not None:
            d.update(default)
        r.append(d)
    return r