def is_step(cur, prev):
    """
    Checks whether pairs cur (current) and prev (previous) are consecutive tracks.
    Works if disc_num or track_num is a single letter
    :param cur: [disc_num, track_num]
    :param prev: [disc_num, track_num]
    :return: bool. True if cur comes after prev, False otherwise
    """
    c = cur[:]
    c = [c[0] if len(c[0]) > 0 else '0', c[1] if len(c[1]) > 0 else '0']
    c = [ord(c[0])-64 if not c[0].isdigit() else int(c[0]),
         ord(c[1])-64 if not c[1].isdigit() else int(c[1])]
    p = prev[:]
    p = [p[0] if len(p[0]) > 0 else '0', p[1] if len(p[1]) > 0 else '0']
    p = [ord(p[0])-64 if not p[0].isdigit() else int(p[0]),
         ord(p[1])-64 if not p[1].isdigit() else int(p[1])]

    if c[0]-p[0] == 0:  # same disc, must be next track
        return c[1]-p[1] == 1
    elif c[0]-p[0] == 1:  # next disc, must start new track
        return c[1] < 2
    else:  # cannot be valid
        return False