One for the speed merchants today, as all we have to do is count the six-digit numbers in a given range where (a) no digit is ever smaller than its predecessor and (b) there is an adjacent pair of the same digit.

```
def digits_ascend(n):
s = str(n)
for i in range(0, len(s)-1):
if s[i] > s[i+1]:
return False
return True
def adjacent_digit_pair(n):
s = str(n)
for i in range(0, 10):
if 2 * str(i) in s:
return True
return False
print(len([n for n in range(156218, 652528) if digits_ascend(n) and adjacent_digit_pair(n)]))
```

The second star throws in the minor wrinkle that a pair of digits is valid if and only if it is strictly a pair, i.e. not part of a threesome, foursome or moresome. Not much of a change required to continue the above approach:

```
def adjacent_digit_pair_strict(n):
s = str(n)
for i in range(0, 10):
if 2 * str(i) in s and 3 * str(i) not in s:
return True
return False
```