We know that every 3-cycles can be expressed as the product of two commutations.
Cycles[{{1, 2, 3}}] ==
PermutationProduct[Cycles[{{1, 3}}], Cycles[{{3, 2}}]]
In the same way, we can see that each 5-cycles can be expressed by the product of two 3-cycles:
Cycles[{{1, 2, 3, 4, 5}}] ==
PermutationProduct[Cycles[{{1, 2, 3}}], Cycles[{{1, 4, 5}}]]
And, we can also see that each 3-cycles can be expressed by the product of two 5-cycles.
Cycles[{{1, 2, 3}}] == PermutationProduct[Cycles[{{5, 4, 2, 1, 3}}],
Cycles[{{1, 3, 2, 4, 5}}]]
How can I customize a function generator[lis_List] := Module[{}, ...]
to find all the possible products of two 3-cycles of a 5-cycles?
For example, enter generator[{1, 2, 3, 4, 5}]
to get:
{{{1, 2, 3}, {1, 4, 5}},
{{3, 4, 5}, {3, 1, 2}},
{{2, 3, 4}, {2, 5, 1}},...}
A general idea is as follows, but it is too complicated. I hope there is a more ingenious method:
Threecircleslist =
Flatten[Permutations /@ Subsets[{1, 2, 3, 4, 5}, {3}], 1] //
DeleteDuplicates;
data = Flatten[
Table[{Cycles[{i}], Cycles[{j}]}, {i, Threecircleslist}, {j,
Threecircleslist}], 1] // DeleteDuplicates;
Select[data,
PermutationProduct[#[[1]], #[[2]]] == Cycles[{{1, 2, 3, 4, 5}}] &]
{ {Cycles[{{1, 2, 3}}], Cycles[{{1, 4, 5}}]},
{Cycles[{{1, 2, 5}}], Cycles[{{3, 4, 5}}]},
{Cycles[{{1, 4, 5}}], Cycles[{{2, 3, 4}}]},
{Cycles[{{2, 3, 4}}], Cycles[{{1, 2, 5}}]},
{Cycles[{{3, 4, 5}}], Cycles[{{1, 2, 3}}]}}