В чем заключается суть алгоритма перестановок?

Начинаю изучать новые алгоритмы, однако очень плохо воспринимаю языки кроме c# и Java

Недавно задался вопросом о том как создать List из всех перестановок в массиве; однако в интернете увидел множество совершенно не понятного чтива, к тому же я по большей части визуал.

Можете пожалуйста доступным языком объяснить этот алгоритм на пальцах

Пример : Для массива {1,2,3} Результат :

{123}
{213}
{132}
{231}
{312}
{321}

Хотелось бы реализовать функцию, которая возвращает List со всеми перестановками элементов массива

public static List<string> Combinations(int[] array){
 throw new ArgumentException();
}

Ответы (0 шт):