Вы можете сделать это несколькими способами, вот некоторые из них:
def find_all(a_str, sub):
start = 0
while True:
start = a_str.find(sub, start)
if start == -1: return
yield start
start += len(sub) # use start += 1 to find overlapping matches
string = 'Hello World'
print (list(find_all(string, 'o'))[1])
output:
7
string = 'Hello World'
print([i for i in range(len(string)) if string.startswith('o', i)][1])
output:
7