I've just written this for a similar task. It's for 10.2 but I think it will still work:
def unique_values(table, field):
with arcpy.da.SearchCursor(table, [field]) as cursor:
dict = sorted({x[0] for x in cursor})
print type(dict) #testing to find type
for i in range(len(dict)):
whereD = dict[i]
fname = whereD[0:5] + "_" + whereD[-4:] #just to make a filename for outputs
arcpy.MakeFeatureLayer_management(table, fname)
query = "relatedBirds_Species = '" + whereD + "'"
arcpy.SelectLayerByAttribute_management(fname, "NEW_SELECTION", query)
arcpy.CopyFeatures_management(fname,fname+ "_c") #add a "_c" to output to differ from intermediate files
If you put the above into notepad and save as something.py, in ArcGIS you can open the python window, right click>load, navigate to the something.py file and load it in. Hit enter a couple of times to get back to the >>>>> prompt.
Then you just call the method with unique_values("c:/whatever_location/yourfile.shp","field_in_question")
Depending on your data it might take a while to run. I'm trying to speed it up now. See:
Iterating using search cursor and layer selection performance?