Dream, я это к чему: если бы вы привели свой код на Python и сказали бы - вот, я пробовал так, не получается (или такая-то проблема), то это имело бы отношение к Python и можно было бы поставить тег.
А так... можно ведь и тег "компьютеры" поставить, вы ведь не на счетах работаете... но какой смысл?
Что касается собственно вопроса, то коротко говоря - никак. Если пароль стойкий, то нет простых способов предсказать его и исключить генерацию предсказанного повторного пароля.
Вообще-то сами пароли обычно не хранят. Это вредно с точки зрения безопасности. Хранят таблицы хешей с привязкой к логинам или что-то в таком духе.
Сами пароли тоже не в лоб используют. Их солят, перчат и т.п.
Хорошо бы уточнить, с какой целью всё это делается. Если для практических целей, то лучше бы брать готовые решения. Если для изучения вопросов аутентификации, то мне кажется это слишком простым подходом к генерации паролей. Тут необходимо как минимум добавить расчёт сложности пароля. Хотя бы на Википедии прочитайте.
S1NYA, ну… к примеру, делаем словарь, ключи - адреса, значения - True/False. Выгружаем его в JSON и в текстовый файл. На следующую сессию загружаем новую порцию адресов в словарь со значениями True, потом поверх накатываем словарь из сохраненного JSON со значениями, какие там есть. Словарь автоматом оставит только уникальные ключи и там, где сохранены False, запишет их поверх True.
Ну, во-первых, не понятно, это происходит с какой частотой? Если раз в сутки, то пойдёт и в файле. Если сто раз в секунду, то надо либо делать кеширование в памяти, либо диск сотрется от r/w… в общем, не всё так гладко и просто.
Во-вторых, в принципе, можно всё это, например, загружать в sqlite в памяти и там крутить-вертеть, и периодически скидывать на диск текущее состояние.
Или другие варианты кеширования рассмотреть.
Действительно… ну банально же, ошибка про индекс - посмотри, что там с индексами.
Но у меня есть подозрение, что сейчас это правильный подход - не учиться, а спрашивать. Просто некоторые люди перестают быть носителями индивидуального разума, а становятся агентами общественного организма, возможно разумного.
Увы, но это жизнь.
Начните с того, чтобы не использовать имя типа list в качестве переменной. Вы тем самым переназначаете этот тип и можно получить неожиданные эффекты.
Если вы делаете это непреднамеренно, это грубая ошибка; а преднамеренно переопределять встроенный тип - очень редко, когда действительно нужно.
И потом - если пишете в тег вопроса drf, то не надо указывать более общие теги (Python, например). А то ведь вы программируете, чего бы не указать тег «программирование»; программируете для сервера, так че бы не влепить тег «сервер»; программируете при помощи алфавита - о, давайте тег «алфавит» добавим…
Вы подробнее опишите, какую конечную цель пытаетесь достичь перечисленными способами, возможно, вам подскажут пути короче и прямее.
И ещё: если ставите тег Python, публикуйте свой код; иначе тег заставляет десятки тысяч читателей тега видеть совершенно не интересный им вопрос про способы работы с вконтактом.
Skrayvee, то, что вы не смогли найти нужную информацию в гугле не значит, что её там нет. Это значит, что вы не только не знаете язык программирования, но и не умеете находить необходимую информацию для изучения. И идёте легкой дорогой - но легкие дороги ведут вниз.
Тогда не придется извращаться с подчеркиваниями :)