Это не самый оптимальный, но, наверное, самый простой вариант.
Если хочешь, то могу подробно расписать.
class Program
{
static void Main(string[] args)
{
Console.InputEncoding = Console.OutputEncoding = Encoding.GetEncoding(@"Cyrillic");
var letters = Console.ReadLine().ToCharArray(); // Введи весь алфавит в одну строчку
var wordLength = int.Parse(Console.ReadLine()); // Введи размер слова
var word = new char[wordLength];
var totalWordsCount = 1;
for (var i = 0; i < wordLength; i++)
totalWordsCount *= letters.Length;
for (var i = 0; i < totalWordsCount; i++)
{
var accum = i;
for (var j = word.Length - 1; j >= 0; j--)
{
word[j] = letters[accum % letters.Length];
accum /= letters.Length;
}
Console.WriteLine(new string(word));
}
Console.ReadKey();
}
}