The following script iterates through your buffer geometries, and assigns each to a group where none of the geometries overlap. There are surely ways to streamline the code and this may not be very efficient for large datasets, so I make no guarantees there.
>>> def group_buffs(buff_dict, group_no): # the magic function
... group_no += 1 # group ID
... changes = 0 # see if any changes happened on this run
... for k,v in buff_dict.iteritems(): # loop through buffer dictionary
... if v[1] == 0: # if row doesn't have a group ID
... test_geom = v[0] # record geometry
... buff_dict[1] = group_no # assign group ID
... break # just need the first one
... for k,v in buff_dict.iteritems(): # loop through buffer dictionary
... if v[1] == 0: # if row doesn't have a group ID
... if v[0].disjoint(test_geom): # if row is disjoint to the test_geom
... changes += 1 # record a change
... buff_dict[1] = group_no # assign group ID
... test_geom = test_geom.union(v[0]) # add current geometry to test_geom
... if changes == 0: # no changes, must be done
... return buff_dict # return the finished dictionary
... else: # there were changes, call function again
... return group_buffs(buff_dict,group_no) # call the function again and return the result
... buff_fc = 'buff2km' # the buffer feature class
... buff_dict = {} # an empty dictionary
... with arcpy.da.SearchCursor(buff_fc,['OID@','SHAPE@']) as cursor: # load OIDs and geometries to dictionary
... for row in cursor:
... buff_dict[row[0]] = [row[1],0] # key = OID, value = [geometry, default group ID]
... buff_dict = group_buffs(buff_dict, 0) # call function to assign group IDs
... group_field = 'group_no'
... #arcpy.AddField_management(buff_fc,group_field,"SHORT") # uncomment if need to add a field for group ID to feature class
... with arcpy.da.UpdateCursor(buff_fc,['OID@',group_field]) as uCursor: # update feature class with group IDs
... for uRow in uCursor:
... uRow[1] = buff_dict[uRow[0]][1]
... uCursor.updateRow(uRow)

edit: I'll add that you can do exactly the same thing using PointGeometries and its distanceTo method, rather than Polygon's disjoint method.