Покажите свою попытку решения проблемы и что получилось. В противном случае вопрос может быть удалён модератором за нарушение правила 5.12 (это не вопрос, а задание).
Frik4455, настоятельно рекомендую привести свои попытки решить проблему. Тут помогают, если человек пытается сам решить. За вас код пишут на другом сервисе.
Artyom Test, хорошо. Тогда надо убрать всю лишнюю логику, все лишние сравнения, лишние переменные, убрать генерацию случайных чисел, преобразовать строку пароля в число и тупо перебирать числа в range, пока одно не подойдёт.
Arahis3000, надо посмотреть, какой тип передается в параметр city_id когда вызывается функция.
sqlite принимает только определённые типы, а именно None, int, float, str, bytes и ещё datetime.
Если передается объект другого типа (например, список), вернётся ошибка.
Видите ли… помогать творить дичь мало кому нравится. Поэтому вам либо надо принимать критику как обязательную составляющую, либо решать свои проблемы отладки дичи своими силами.
Необходимо исправить названия вопросов в соответствии с правилом.