def merge_adjacent(numbers, indicator='<STR_LIT:..>', base=<NUM_LIT:0>):
integers = list(sorted([(int("<STR_LIT:%s>" % i, base), i) for i in numbers]))<EOL>idx = <NUM_LIT:0><EOL>result = []<EOL>while idx < len(numbers):<EOL><INDENT>end = idx + <NUM_LIT:1><EOL>while end < len(numbers) and integers[end-<NUM_LIT:1>][<NUM_LIT:0>] == integers[end][<NUM_LIT:0>] - <NUM_LIT:1>:<EOL><INDENT>end += <NUM_LIT:1><EOL><DEDENT>result.append("<STR_LIT>" % (integers[idx][<NUM_LIT:1>], indicator, integers[end-<NUM_LIT:1>][<NUM_LIT:1>])<EOL>if end > idx + <NUM_LIT:1><EOL>else "<STR_LIT:%s>" % integers[idx][<NUM_LIT:1>])<EOL>idx = end<EOL><DEDENT>return result<EOL>
Merge adjacent numbers in an iterable of numbers.

        Parameters:
            numbers (list): List of integers or numeric strings.
            indicator (str): Delimiter to indicate generated ranges.
            base (int): Passed to the `int()` conversion when comparing numbers.

        Return:
            list of str: Condensed sequence with either ranges or isolated numbers.