[counting all (possibly overlapping) occurences of a substring in a string]
def count_subs(s,subs,pos=0) : pos = 1+s.find(subs,pos) return pos and 1+count_subs(s,subs,pos) or equivalently def count_subs(s,subs) pos,cnt = 0,0 while True : pos = 1+s.find(subs,pos) if not pos : return cnt cnt += 1 or even (using the helper functions of my last post in the "small challenge" thread) def count_subs(s,subs) : cnt = 0 for pos1 in echoback(1+s.find(subs,pos) for pos in itially(0)) : if not pos1 : return cnt cnt += 1 (I've minimally tested only the first version) -- http://mail.python.org/mailman/listinfo/python-list