def get_all_substrings(string):
    for index in range(len(string)):
        yield string[index:]
        
def get_bigest_substring(string):
    for index, characters in enumerate(zip(string, string[1:])):
        a, b = characters
        if b < a:
            return string[:index+1]
    return string
    
substrings = (get_bigest_substring(string) 
    for string in get_all_substrings('azcbobobegghakl'))
    
bigest_substring = max(substrings, key=len)
    
print(bigest_substring)

