from permutations import *
from groups import *
n-transitive if X has at least n elements, and for all distinct x1, ..., xn and all distinct y1, ..., yn, there is a g in G such that g⋅xk = yk for 1 ≤ k ≤ n. A 2-transitive action is also called doubly transitive, a 3-transitive action is also called triply transitive, and so on. Such actions define interesting classes of subgroups in the symmetric groups: 2-transitive groups and more generally multiply transitive groups. The action of its symmetric group on a set with n elements is always n-transitive; the action of its alternating group is (n − 2)-transitive.
From wikipedia
x1,x2,x3,x4,x5 = 1,2,4,5,3
y1,y2,y3,y4,y5 = 3,2,1,4,5
S5 = create_symmetric_group_of_order(5)
for g in S5:
if (g(x1) == y1) and (g(x2) == y2) and (g(x3) == y3) and (g(x4) == y4) and (g(x5) == y5):
print(g)
(1, 3, 5, 4)
A5 = create_alternating_group_of_order(5)
for g in A5:
if (g(x1) == y1) and (g(x2) == y2) and (g(x3) == y3) and (g(x4) == y4) and (g(x5) == y5):
print(g)
# None
for g in A5:
if (g(x1) == y1) and (g(x2) == y2) and (g(x3) == y3):
print(g)
(1, 3, 4)