To change the active tool in ArcObjects use the CurrentTool property of IApplication object:
public void CurrentTool(IApplication app)
{
ICommandBars documentBars = app.Document.CommandBars;
UID cmdID = new UIDClass();
cmdID.Value = "{B7FA188F-EBE3-11D0-87FE-080009EC732A}";
ICommandItem cmdItem = documentBars.Find(cmdID, false, false);
app.CurrentTool = cmdItem;
}
Which uses the UID/CLSID of the command to identify it. To my knowledge Python tools don't have CLSIDs so you can't invoke them this way. Tools written in .net have CLSIDs embedded in them at creation so are subject to this method.
It is possible to use ArcObjects in python, there's a basic discourse here and a more complete post Accessing ArcObjects from Python?. If you can find a way to associate a CLSID/UID with the tool then it is possible.