from typing import List


def build_numeric_sequence(data: List[int]) -> List[str]:
    """Builds range from list of integers if it possible.
    for e.g. ::
        >>> res = build_numeric_sequence([0, 1, 2, 3, 4, 5, 6, 56, 44, 45, 46])
        >>> print(res)
        ['1:6', '44:46', '56']
        >>>

    :param data: list of integers
    :return: list of parsed list
    """
    prev = -1
    start = None
    res = []
    for item in filter(None, sorted(set(data))):
        if prev + 1 == item:
            if not start:
                start = prev
                if res and res[-1] == prev:
                    res.pop()
        else:
            if start:
                res.append('{}:{}'.format(start, prev))
                start = None
            res.append(item)
        prev = item
    if start:
        res.append('{}:{}'.format(start, prev))
    return [str(item) for item in res]