Во-первых, ответ Ника, я думаю, лучше. Но регулярные выражения могут быть жесткими, и я не очень хорошо с ними отношусь, поэтому я стараюсь держаться от них подальше, потому что в моих руках они довольно приятные.
короткий путь, который не использует регулярные выражения:
import string
s = "##catgiraffeapluscompscI"
letters_found = [L for L in string.ascii_letters if L in s]
if letters_found:
first_letter_position = min([s.find(L) for L in letters_found])
else:
first_letter_position = -1
print(first_letter_position)
По сути, он создает список всех букв в вашей цели (пустой, если в цели их нет); затем для каждой буквы, которая присутствует в цели, находит первое местоположение; и берет наименьшее из этого.
Но опять же, Ник лучше, если вы знакомы с регулярными выражениями.