# Issue

*This Content is from Stack Overflow. Question asked by Daniel *

I am given a string, and I have to calculate the sum of of each distance of bit pairs where both bits are 1.

For example the given string of 100101 would have the distance of 10

**1**00**1**01 (3)

**1**0010**1** (5)

100**1**0**1** (2)

Therefore the sum of distances is 3+5+2=10.

My current code is the following, I can’t really solve what’s wrong, and how should I approach the problem.

```
def pairs(s):
count = 0
for i in range(len(s)):
if s[i] == '1':
for j in range(i+1, len(s)):
if s[j] == '1':
count += 1
return count
if __name__ == "__main__":
print(pairs("100101")) #10
```

I have also tried to store the 1’s in a list, but can’t manage to calculate the distance.

# Solution

The following should do it:

```
def pairs(s):
count = 0
for i in range(len(s)):
if s[i] == '1':
dist = 0
for j in range(i+1, len(s)):
dist += 1
if s[j] == '1':
count += dist
return count
if __name__ == "__main__":
print(pairs("100101")) #10
```

This Question was asked in StackOverflow by Daniel and Answered by Axel Kemper It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.