import bpy

for item in bpy.context.scene.objects:
    if item.type == 'MESH':
        bpy.context.scene.objects.unlink(item)
for item in bpy.data.objects:
    if item.type == 'MESH':
        bpy.data.objects.remove(item)
for item in bpy.data.meshes:
    bpy.data.meshes.remove(item)
for item in bpy.data.materials:
    bpy.data.materials.remove(item)
    
import math
n = 12
r = 4
obj = []

for i in range(n):
    t = 2.0 * math.pi * i / n
    x = 0.5 * r * math.cos(t)
    y = 0.5 * r * math.sin(t)
    bpy.ops.mesh.primitive_ico_sphere_add(subdivisions = 3, size = 0.5, location=(x,y,0))
    obj.append(bpy.context.scene.objects.active)
    bpy.ops.rigidbody.object_add()
    obj[i].rigid_body.kinematic = True
    
    bpy.context.scene.frame_set(1)
    obj[i].keyframe_insert( data_path='location' )
    obj[i].rigid_body.keyframe_insert( data_path='kinematic' )
    
    bpy.context.scene.frame_set(2)
    obj[i].location = (x*1.03, y*1.03, 0.1)
    obj[i].keyframe_insert( data_path='location' )
    
    bpy.context.scene.frame_set(3)
    obj[i].rigid_body.kinematic = False
    obj[i].rigid_body.keyframe_insert( data_path='kinematic' )