If there's only one target string to search ("haystack"), and it's not absurdly huge (billions of characters), or the number of strings to be searched for ("needles") is smallish, just do the linear scans the naive way:
haystack = '....'
needles = ['...', '...']
hits = {}
for needle in needles:
try:
hits[needle] = haystack.index(needle)
except ValueError:
pass # needle not found
# Or if exceptions aren't allowed, test and check
for needle in needles:
idx = haystack.find(needle)
if idx >= 0:
hits[needle] = idx
If you've got many needles to search for in many (or huge) haystacks, you can get major speed-ups from Aho-Corasick string search, which I've already covered in detail here.