def slice(s, start, end):
    l = len(s)
i = 0
while i < start and i < l:
    if is_surrogate(s, i):
        start += 1
end += 1
i += 1
i += 1
while i < end and i < l:
    if is_surrogate(s, i):
        end += 1
i += 1
i += 1
return s[start:end]
Правильно извлекать эмодзи из строки Unicode