mirror of
https://github.com/iritmaximus/tira.git
synced 2026-10-12 19:13:47 +03:00
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
def find_codes(pattern):
|
|
result = []
|
|
for char in pattern:
|
|
print(result, char)
|
|
if char == "?":
|
|
if len(result) == 0:
|
|
for num in range(1,10):
|
|
if str(num) not in pattern:
|
|
result.append(str(num))
|
|
else:
|
|
for i in range(len(result)):
|
|
for num in range(1,10):
|
|
if str(num) not in result[i] and str(num) not in pattern:
|
|
result.append(result[i] + str(num))
|
|
|
|
else:
|
|
if len(result) == 0:
|
|
result = [char]
|
|
else:
|
|
for i in range(len(result)):
|
|
result[i] += char
|
|
print(result)
|
|
print()
|
|
|
|
longest = len(result[-1])
|
|
result = list(filter(lambda x : len(x) == longest, result))
|
|
print("Final result:", result)
|
|
print()
|
|
return result
|
|
|
|
if __name__ == "__main__":
|
|
codes = find_codes("3148")
|
|
print(codes) # ['1', '2', '3', ...]
|
|
|
|
codes = find_codes("24?5")
|
|
print(codes) # ['2415', '2435', '2465', '2475', '2485', '2495']
|
|
|
|
# codes = find_codes("1?2?")
|
|
# print(codes[:5]) # ['1324', '1325', '1326', '1327', '1328']
|
|
# print(len(codes)) # 42
|
|
|
|
# codes = find_codes("????")
|
|
# print(codes[:5]) # ['1234', '1235', '1236', '1237', '1238']
|
|
# print(len(codes)) # 3024
|