def ApproximatePatternCount(Pattern, Text, d): count = 0 for i in range(len(Text)-len(Pattern)+1): if Text[i:i+len(Pattern)] == Pattern: count += 1 elif HammingDistance(Text[i:i+len(Pattern)], Pattern) <= d: count += 1 return count def HammingDistance(p, q): count = 0 for i in range(0, len(p)): if p[i] != q[i]: count += 1 return count