The easiest way to do this would be to use a Search Cursor on the feature or table layer you created (not the source datasets) that has the initial selection applied (although I haven't tried doing this before):Cursors honor layer/table view definition queries and selections. The cursor object only contains the rows that would be used by any geoprocessing tool during an operation.
Your code could look something like this:
selected = [str(r[0]) for r in arcpy.da.SearchCursor('Layer Name', ['SOURCE_ID_FIELD'])]
query = 'SOURCE_ID_FIELD IN (' + ', '.join(selected) + ')'
Note that the exact syntax is going to depend on how you defined your feature or table layer, and whether or not this is shapefile, fgdb etc. The str(r[0]) is important because join() expects a list of strings.Also if the IDs are text then...
query = "SOURCE_ID_FIELD IN ('" + "', '".join(selected) + "')"
... should work.Tough to test any of this without your data, but hope this helps.