import bpy
vgroup_A_name = "Group"
vgroup_B_name = "Group.001"
ob = bpy.context.active_object
if vgroup_A_name and vgroup_B_name in ob.vertex_groups:
vgroup = ob.vertex_groups.new(name=vgroup_A_name+"+"+vgroup_B_name)
for id, vert in enumerate(ob.data.vertices):
available_groups = [v_group_elem.group for v_group_elem in vert.groups]
A = B = 0
if ob.vertex_groups[vgroup_A_name].index in available_groups:
A = ob.vertex_groups[vgroup_A_name].weight(id)
if ob.vertex_groups[vgroup_B_name].index in available_groups:
B = ob.vertex_groups[vgroup_B_name].weight(id)
if len(vert.groups):
for g in vert.groups:
if ob.vertex_groups[g.group].name in [vgroup_A_name, vgroup_B_name]:
vgroup.add([id], A+B ,'REPLACE')