Я-бы предложил сначала придумать выражение типа регулярки, которая просто обобщит все варианты которые возможны. Из частного случая
*!Tomsk2018*Oksana!
*06Tomsk08*Oksana18!*
Можно предположить что есть два произвольных ASCII-NUM-CTRL символа. Потом Tomsk. Потом календарная дата от 2008 до 2018 года в двух форматах YYYY, YY. Потом женское имя. И потом опционально еще раз календарная дата и 2 ASCII-NUM-CTRL символа.
Давайте посчитаем количество. Пускай для простоты ASCII-NUM-CTRL = 128 символов.
Даты - 10 лет и еще 2 формата итого 20 штук.
Итого. 128 * 20 * 20 * 128. Но у нас еще есть пустая комбинация NULL (опция). Для простоты просто добавим +1 к каждому множителю и таким образом закроем эти опциоанльные строки. Получается
129 * 21 * 21 * 129 = 7338681
Семь мильонов. Словарь - детского размера. Вобщем подбор вполне осуществим.
P.S. Я надеюсь что мы не нарушаем правил qna обсуждая такие вещи. И я надеюсь что автор честен и спрашивает это только для личного пользования.