from typing import List


def flatten(lst: List) -> list:
    """Reduce a nested list to a single flat list.

    >>> flatten(["A", [2, ["C"]], ["DE", (5, 6)]]) == ["A", 2, "C", "DE", 5, 6]
    True
    """
    result = []
    for item in lst:
        isiterable = False
        try:
            iter(item)
            isiterable = True
        except TypeError:
            pass

        if isiterable and not isinstance(item, str):
            result += flatten(item)
        else:
            result.append(item)
    return result