import bpy
from mathutils import Vector
myVec = Vector((1.0,2.0,1.0))
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude={"type":'REGION'}, TRANSFORM_OT_translate={"value":(0, 0, 0), "constraint_axis":(False, False, True), "constraint_orientation":'GIMBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH',"snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
bpy.ops.transform.translate(value=myVec, constraint_axis=(False, False, False), constraint_orientation='NORMAL')
the faces appear inverted, but seem to get recalculated once you perform another similar operation. The above can be shortened to:
import bpy
from mathutils import Vector
myVec = Vector((1.0,2.0,1.0))
bpy.ops.mesh.extrude_region_move(MESH_OT_extrude={"type":'REGION'}, TRANSFORM_OT_translate={"value":myVec})
i hope that helps