>  IMO if you need the concrete Cartesian product instantiated you're probably doing something wrong, or you're addicted to a certain kind of programming competitions with highly mathematical puzzles.

Nop, operators are useful as you've said and it is why i am proposing this. neopythonic.blogspot.com/2019/03/why-operators-are-useful.html

>  please show some real use cases of programs where itertools.product() makes it hard for the human reader to understand the code.

Its more clear and understandable than itertools.product for people from outside of a programming background. The simplicity is useful when we are working with multiple expressions at sametime. (cset(a & b) * cset(a | b))

Also there are some benefits of it for external libraries like ORMs. I am spending most of my time on repl for debugging my models and when i query something it returns set of values. If i want to get every permutation of 2 different query set i need to import itertools and call itertools.product every time.


But i am giving up the idea because of not getting enough attention from community.

On Sat, Jul 27, 2019 at 12:06 AM Guido van Rossum <guido@python.org> wrote:
>
>  IMO if you need the concrete Cartesian product instantiated you're probably doing something wrong, or you're addicted to a certain kind of programming competitions with highly mathematical puzzles. itertools.product() is good enough for the occasional legitimate use case (I think I recall encountering one in the past decade or so).
>
> Batuhan, if you still want to continue to debate this, please show some real use cases of programs where itertools.product() makes it hard for the human reader to understand the code. Examples like {1, 2, 3} * {"a", "b", "c"} do *not* count.
>
> --
> --Guido van Rossum (python.org/~guido)
> Pronouns: he/him/his (why is my pronoun here?)