Get children name and move it to a separated collection automatically
Use the objects children property.
A blender object already has a children collection, there is no need to reinvent the wheel.
Test script,
loop over the children of the context object, (optionally) if they are linked to another collection, unlink, create a new collection with object name, link child object to it, link collection to context collection.
import bpy

context = bpy.context
coll = context.collection
ob = context.object

def unlink(ob):
    for c in bpy.data.collections:
        if ob.name in c.objects:
            c.objects.unlink(ob)

for child in ob.children:
    if child.type != 'MESH':
        continue
    # unlink from any other collection?
    unlink(child)
    new_col = bpy.data.collections.new(child.name)
    new_col.objects.link(child)
    coll.children.link(new_col)

# to remove if the context object is only a temporary place holder
bpy.data.objects.remove(ob)