def gen_number_map() ->dict:
    """
    Returns base number mapping including combinations like 4 -> IV and 9 -> IX, etc.
    """
    mapping = {(1000): 'M', (500): 'D', (100): 'C', (50): 'L', (10): 'X', (
        5): 'V', (1): 'I', (0): 'N'}
    for exponent in range(3):
        for num in (4, 9):
            power = 10 ** exponent
            mapping[num * power] = mapping[1 * power] + mapping[(num + 1) *
                power]
    return mapping
