CBC.Block in fenics applications has the ability to set Trilinos (and in particular, ML) preconditioners for their Krylov solvers. In theory (according to past conversations with an ML developer), PyTrilinos' ML expose the Maxwell preconditioner. Perhaps you could use cbc.block (without the block matrix features, in your case) to make this happen. This is speculative, but it might work.
Two starting points would be:
1.) The cbc.block demos, which show how to use a standard ML preconditioner with a Krylov solver.
2.) PyTrilinos' or ML's documentation might show you how to get the curl-curl preconditioner instantiated from Python, whence (if successful), you might be able to suitably modify the cbc.block demos for your own purposes.