Find strings in a list that between specific ascii values – Python

I am trying to find certain string in a list that are between a lowerbound and upperbound (these are user input values). For example say I have a list, states = [‘OH’, ‘NJ’, ‘NY’, ‘SD’, ‘NH’, ‘WI’]. The user inputs lowerbound = ‘NJ’ and upperbound = ‘SD’. I want the code to output [‘OH’, ‘NJ’, ‘NY’, ‘SD’].