Для поиска чисел, в которых цифры повторяются, можно использовать следующие методы:
1. Метод конвертации числа в строку и сравнение каждой цифры в строке с остальными цифрами.
Пример:
```python
num = 123456
num_str = str(num)
repeated_digits = []
for digit in num_str:
if num_str.count(digit) > 1 and digit not in repeated_digits:
repeated_digits.append(digit)
print(repeated_digits) # ['2']
```
2. Метод использования словаря для подсчета повторяющихся цифр.
Пример:
```python
num = 123456
digit_count = {}
while num > 0:
digit = num % 10
if digit in digit_count:
digit_count[digit] += 1
else:
digit_count[digit] = 1
num = num // 10
repeated_digits = [digit for digit, count in digit_count.items() if count > 1]
print(repeated_digits) # [2]
```
Чтобы отфильтровать числа, состоящие из одинаковых цифр, можно изменить регулярное выражение в предоставленном коде.
Измените регулярное выражение `(.)\1+` на `^(.)\1*$`. Это регулярное выражение будет соответствовать только числам, состоящим из одинаковых цифр.
Пример:
```python
import re
numbers = [404, 18538]
filtered_numbers = [num for num in numbers if not re.match(r'^(.)\1*$', str(num))]
print(filtered_numbers) # [18538]
```
В этом примере числа 404 были отфильтрованы, поскольку они состоят из одинаковых цифр, в то время как число 18538 осталось в массиве, поскольку оно имеет различные цифры.