def _get_param_combinations(lists):
    """Recursive function which generates a list of all possible parameter values"""
    if len(lists) == 1:
        list_p_1 = [[e] for e in lists[0]]
        return list_p_1

    list_p_n_minus_1 = _get_param_combinations(lists[1:])
    list_p_1 = [[e] for e in lists[0]]

    list_p_n = [p_1 + p_n_minus_1 for p_1 in list_p_1 for p_n_minus_1 in list_p_n_minus_1]
    return list_p_n