My omnium-gatherom of scripts and source code.
1from algorithms import *
2
3def revcat(left: list, right: list) -> list:
4 return left + right[::-1]
5
6left = F(75, 31)
7right = F(31, 75)
8until = 8
9
10def THING(f, l, until):
11 cyc = doubled_edge_cycle(until).adjacency_matrix()
12 left_ = F(f, l)
13 right_ = F(l, f)
14 head = left_[:2]
15 left = left_[:until]
16 right = right_[:until]
17 for idx, p in enumerate(zip(left[::-1], right[2 + until - len(left):]), 1):
18 if p[1] == p[0]:
19 a = right[idx + until - len(left)]
20 b = left[-idx - 3]
21 if (a + b) % p[1] == 0:
22 if idx == 1:
23 body = revcat(left[2: -idx], right[2:-idx])
24 else:
25 body = revcat(left[2:-idx] + [p[0]], right[2:-idx])
26 lst = head + body
27 print(lst, idx)
28
29
30THING(31, 75, 8)
31THING(37, 17, 8)
32THING(11, 47, 8)
33THING(57, 13, 8)
34THING(3, 23, 8)