Obtendo todas as combinações em uma matriz

Digamos que eu tenha o seguinte array:

var arr = new[] { "A", "B", "C" };

Como posso produzir todas as combinações possíveis que contêm apenas dois caracteres e não dois iguais (por exemplo,AB seria o mesmo queBA). Por exemplo, usando a matriz acima, produziria:

AB
AC
BC

Por favor, note que este exemplo foi simplificado. A matriz e o comprimento da string necessária serão maiores.

Eu realmente aprecio se alguém puder ajudar.

questionAnswers(9)

yourAnswerToTheQuestion