I've recently discovered IronPython in C# and only tutorials I found were how to use python script in C#, but I've noticed, that IronPython has classes and methods you can use directly in C# like :  PythonIterTools.product some_pr = new PythonIterTools.product(); and others, can anyone explain how does this work?
Parts of IronPython's standard library are implemented in C#, mainly because the equivalents in CPython are written in C. You can access those parts directly from a C# (or any other static .NET  language) directly, but they're not intended to be used that way and may not be easy to use.
Using IronPython in C#