def contains_unique_chars(s):
b = 0
for i in range(len(s)):
val = ord(s[i]) - ord('a')
print("%3d %27s %9d %2d" % (val, bin(b), 1 << val, b & 1 << val))
if (b & (1 << val)) > 0:
return False
b |= (1 << val)
return True
s = "apythona"
print(contains_unique_chars(s))
'''
run:
0 0b0 1 0
15 0b1 32768 0
24 0b1000000000000001 16777216 0
19 0b1000000001000000000000001 524288 0
7 0b1000010001000000000000001 128 0
14 0b1000010001000000010000001 16384 0
13 0b1000010001100000010000001 8192 0
0 0b1000010001110000010000001 1 1
False
'''