System.out.println(Permutation.symmetricGroup(5).count());
// => 120
String[] a = {"Check", "out", "this", "swish", "library"};
a = Permutation.random(a.length).apply(a);
System.out.println(Arrays.toString(a));
// => [this, library, Check, swish, out]
Permutation s02 = Transposition.swap(0, 2).toPermutation();
Permutation s01 = Transposition.swap(0, 1).toPermutation();
System.out.println(s02.compose(s01).apply("bca"));
// = > abc
Permutation s = Permutation.sorting("Hello world!");
System.out.println(s.toCycles());
// => (0 2 5) (1 4 8 10 3 6 11) (7 9)
See also the javadoc
<dependency>
<groupId>com.github.methylene</groupId>
<artifactId>sym</artifactId>
<version>2.0.3</version>
</dependency>