Проблема в следующей строке:
var cartesianProduct = CartesianProduct(letters, numbers, colours);
буквы, цифры и цвета должны быть вставлены в IEnumerable и затем переданы в CartesianProduct.
Примечание: по умолчанию яСписки примеров при написании нового кода:
object[] letters = { 'A', 'B', 'C' };
object[] numbers = { 1, 2, 3, 4 };
object[] colours = { "Red", "Blue" };
List<object[]> cartesianProducts = new List<object[]> { letters, numbers, colours };
var cartesianProduct = CartesianProduct(cartesianProducts);
Вам нужно передать IEnumerable из IEnumerables ( Список массивов объектов в моем примере ), но вы просто пытаетесь передать втри отдельных IEnumerables ( Массивы объектов в вашем примере )