K.S.Sreeram wrote: > effbot's solution finds overlapping occurrences, whereas your solution > finds non-overlapping occurrences. So efficiency comparisons are not valid.
oops. my bad. here's a fixed version: result = []; pos = 0 try: while 1: pos = mystring.index(substr, pos) result.append(pos) pos += len(substr) except ValueError: pass # done or, if you prefer the generator variant: def finditer(string, substr): pos = 0 index = string.index try: while 1: pos = index(substr, pos) yield pos pos += len(substr) except ValueError: pass # done </F> -- http://mail.python.org/mailman/listinfo/python-list