```
def findRepeatedDnaSequences(self, s):
res,codeset = set(), set()
charmap = {"A":0,"C":1,"G":2,"T":3}
for i in xrange(0,len(s)-9):
code = 0
for j in xrange(i,i+10):
code <<= 2
code |= charmap[s[j]]
if code in codeset:
res.add(s[i:i+10])
else:
codeset.add(code)
return list(res)
```

I thought this bitwise operations would be faster but I was wrong. The next solution beats 82%.

```
def findRepeatedDnaSequences(self, s):
res,codeset = set(), set()
for i in xrange(0,len(s)-9):
if s[i:i+10] in codeset:
res.add(s[i:i+10])
else:
codeset.add(s[i:i+10])
print list(res)
return list(res)
```