Parsec looks pretty similar to python's pyparsing or Pysec.Pysec is a "Monadic Combinatoric Parsing" library in python, so i think you could do monads in python.
If you can do continuation passing, you can implement any monad instance. You still may not be able to encode the Monad generalization (which indeed, Python cannot).
As for continuation passing, Python can do explicit continuation passing, but it has caveats:
* No TCO means it doesn't work well in larger cases
* Explicit CPS is ugly. yield-based continuation passing is restricted. You can't implement non-determinism via generators.
So using yield, you can implement most monad instances in Python (excluding non-determinism).
But Haskell can goes beyond a particular/useful monad instance (e.g: Parsing) and has a Monad generalization (basically a type-class that allows lots of libraries to be written such that they work with any monad, not just this parsing monad).
Additionally, monad transformers are a technique to compose monad types together to form a new monad that can do the things each of the monads can.
For example, I can compose the non-determinism monad with the parsing monad to get a non-determinism parser that yields various possible parse results.