def look_and_say(numbers):
    """
    Performs a look'n'say iteration. Repeated digits are collapsed into one and preceeded by their amount.
    Add 1 before each single digit. '111' -> '31'
    :param numbers: string of digits
    :return: look'n'say op over digits
    """
    digit = ""
    result = ""
    count = 0
    for c in numbers:
        if c == digit:
            count += 1
        else:
            if count:
                result += str(count) + digit
            digit = c
            count = 1
    result += str(count) + digit
    return result