public static IEnumerable<string> AcronymsWithUpto4Letters()
{
var letters = Enumerable.Range('A', 'Z' - 'A' + 1).Select(i => (char)i).ToArray();
return new[] { 1, 2, 3, 4 }
.SelectMany(len =>
Enumerable.Repeat(letters, len)
.Aggregate(new[] { "" },
(prefixes, chars) => (
from prefix in prefixes
from suffix in chars
select prefix + suffix
).ToArray()
)
);
}