That's pretty much what i'm looking for. A table that you can select which data frame you want to take the extent from.
You could retrieve the dataframes, print them as a list of options for the user and then get the user's response via "raw_input". However, I don't know if this will work when the script is used in an ArcToolbox.I envision it something like this:
# Get a list of dataframes in the mxd and assign the list to df
dataFrames = arcpy.ListDataframes(mxd)
# Give each dataframe in the df list a number starting with 1 using enumerate and make it a dictionary
options = dict(enumerate(dataFrames, 1))
# Show options and let the user select which dataframe
response = int(raw_input("Select the number of the dataframe you want: %s \n" % options.items()))
# Assign df to the user's choice
df = options[response]
If you use that code you may want to build in some try:except clauses to send user-friendly error messages if bad info is entered.