Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9

Генерация пароля длиной 5 символов состоящих только из двух заданных цифр из списка и трех заданных букв из списка

14.02.2024, 10:45. Показов 1699. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня вопрос по созданию генерации пароля из 5 символов в python
есть две цифры 2 и 5
и есть три буквы d,f,t
длина пароля 5 символов
пароль должен состоять только из 2 цифры и трех букв. (порядок, расположения и кол-во повторений не имеет значения).
Что мы должны получить на выходе скрипта:
ttf22
ttf25
ttf52
ttf55
ttt22
tf52d
tf52f
tf52t
td55d
td55f
td55t
t2t5t
t2td2
t2td5
ftf22
ftf25
55dtd
55dtf
55dtt
25ttd
52ttf
25ttt
... т.д.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2024, 10:45
Ответы с готовыми решениями:

По запросу выдавать N различных паролей длиной M символов, состоящих из строчных и прописных латинских букв и цифр
Требуется по запросу выдавать N различных паролей длиной M символов, состоящих из строчных и прописных латинских букв и цифр, кроме тех,...

Перемена местами двух заданных элементов списка
Помогите пожалуйста!!! Нужно написать функцию: Прототип : int exchItems (TNode **ppList3, const int pos1, const int pos2); ...

Формирование нового списка из двух заданных. (Односвязные списки)
Описать процедуру, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список...

20
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 10:48
Python
1
2
3
4
5
from itertools import permutations
 
s = '25dft'
for i in permutations(s):
    print(''.join(i))
1
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 10:52  [ТС]
а если длина пароля должна быть 6 символов(или больше), как задать длину проля в данном случаи
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 10:56
Букофку или цифирку в исходную строку добавь

Добавлено через 2 минуты
У функции permutations() есть второй аргумент - длина результата.
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 10:58  [ТС]
Хотел как бы упростить вопрос, на что получил упрощенный легкий ответ, намного вам благодарен. Но задача глобальная и она состоит чуть по другому:
количество используемых символов "1234567890abcdef"
длина пароля 32 символа, в нем должно содержаться 15 цифр и 17 букв.
например:
0c2f4dfcdebe37cadba3e724706de976
8d592da2b70026d5c6fa7afccadb1bd3
ef79a2ed0a3df3e4d4b6e05cc4bd157e
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 11:09
Baltika21, ты представляешь себе, сколько это вариантов?
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 11:11  [ТС]
да представляю, задача такая как это реализовать в python
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 11:12
Что "это"? Сгенерировать один пароль, или все возможные?
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 11:19  [ТС]
все возможные состоящий из 15 цифр и 17 букв, из тех символов которые нам даны. Мощность компа и время потраченное на это не имеет значение.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 11:22
Лучший ответ Сообщение было отмечено Baltika21 как решение

Решение

Python
1
2
3
4
5
6
from itertools import permutations
from exrex import generate
 
for item in set(generate(r'[a-f]{17}[0-9]{15}')):
    for i in permutations(item):
        print(''.join(i))
Добавлено через 36 секунд

Не по теме:

Когда дождешься конца работы скрипта, напиши. Надеюсь, я еще жив буду

1
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 12:30  [ТС]
у меня столько памяти конечно нету, на что мы получаем MemoryError, возможно ли ее как-то выгрузить сразу в файл, с маленькими значениям нету проблем, они сохраняются в файл.

Добавлено через 45 минут
дублирует комбинацию второй раз, как это исправить.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 12:32
В множество положи
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,927
Записей в блоге: 5
14.02.2024, 13:02
Если вернуться к исходной задаче. Дело осложняется тем, что символы могут повторяться.
Python
1
2
3
4
5
6
7
8
9
from itertools import permutations, combinations_with_replacement
p = set()
for i in combinations_with_replacement("25", 2):
    for j in combinations_with_replacement("dft", 3):
        for k in permutations(i + j):
            p.add(''.join(k))
for e in p:
    print(e)
print(len(p))
Добавлено через 47 секунд
Возможно, в itertools есть что-то более подходящее.
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.02.2024, 13:06
Цитата Сообщение от palva Посмотреть сообщение
Возможно, в itertools есть что-то более подходящее.

Не по теме:

Я вообще предложил самое что ни на есть неоптимальное решение. Хуже быть не может.
А неча брутфорсить )))

0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 13:26  [ТС]
отлично, есть одно но, если длина символов будет 10 + то мы получим MemoryError
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,927
Записей в блоге: 5
14.02.2024, 13:42
Подозреваю, что будет эффективнее фильтровать повторения на множествах небольшого размера, а потом преобразовать их в списки.
Python
1
2
3
4
5
6
7
8
9
10
11
from itertools import permutations, combinations_with_replacement
p = []
for i in combinations_with_replacement("25", 2):
    for j in combinations_with_replacement("dft", 3):
        sp = set()
        for k in permutations(i + j):
            sp.add(''.join(k))
        p += list(sp)
for e in p:
    print(e)
print(len(p))
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
14.02.2024, 13:52
Цитата Сообщение от Baltika21 Посмотреть сообщение
да представляю
видимо, не совсем...

Цитата Сообщение от Baltika21 Посмотреть сообщение
есть одно но, если длина символов будет 10 + то мы получим MemoryError
а как же:
Цитата Сообщение от Baltika21 Посмотреть сообщение
Мощность компа и время потраченное на это не имеет значение.
?

Не занимайтесь ерундой... количество вариантов, можете посчитать по формуле:
n!/(n-m)!
при n=32 и m=32
2.63130836933694E+35 - вариантов
Как думаете, сколько придется подождать реального времени, пока они все сгенерируются?

Добавлено через 3 минуты
Даже с учетом, что 15 цифр и 17 букв
(355687428096000 * 1307674368000) - вариантов
1
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 14:39  [ТС]
Цитата Сообщение от palva Посмотреть сообщение
Подозреваю, что будет эффективнее фильтровать повторения на множествах небольшого размера, а потом преобразовать их в списки.
Есть ли возможность чтобы он сразу записывал в txt ? а не ждать пока он все это обработает и выгрузит на что не хватает памяти.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from itertools import permutations, combinations_with_replacement
p = []
result = open('pas.txt', 'w')
for i in combinations_with_replacement("25", 15):
    for j in combinations_with_replacement("dft", 17):
        sp = set()
        for k in permutations(i + j):
            sp.add(''.join(k))
        p += list(sp)
for e in p:
    #print(e)
    s = (''.join(x))
    result.write('\n' + s)
    
print(len(p))
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,927
Записей в блоге: 5
14.02.2024, 15:37
Цитата Сообщение от Baltika21 Посмотреть сообщение
Есть ли возможность чтобы он сразу записывал в txt ?
При генерации permutations печатать еще нельзя, потому что там будут повторы. А вот после того, как перестановки упадут в множество и будут отфильтрованы, можно множества не накапливать в списке, а сразу печатать. Если каждое из множеств влезет в память компьютера (они будут разного размера вообще говоря), то будет работать. Только долго, если данные большие. На небольших данных будет так:
Python
1
2
3
4
5
6
7
8
9
from itertools import permutations, combinations_with_replacement
result = open('pas.txt', 'w')
for i in combinations_with_replacement("25", 2):
    for j in combinations_with_replacement("dft", 3):
        sp = set()
        for k in permutations(i + j):
            sp.add(''.join(k))
        for e in sp:
            result.write(e + '\n')
Добавлено через 12 минут
Я попробовал поставить 4 цифры, 5 букв. Получился файл 5388768 байт. Где-то секунд 15 работало, но у меня очень слабый процессор.
0
0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9
14.02.2024, 15:40  [ТС]
Цитата Сообщение от palva Посмотреть сообщение
При генерации permutations печатать еще нельзя, потому что там будут повторы. А вот после того, как перестановки упадут в множество и будут отфильтрованы, можно множества не накапливать в списке, а сразу печатать. Если каждое из множеств влезет в память компьютера (они будут разного размера вообще говоря), то будет работать. Только долго, если данные большие. На небольших данных будет так:
У меня есть такое решение с записью по порядку, здесь записывает все комбинации которые есть не загружая память, возможно ли видоизменить чтобы учувствовало только 15 цифр и 17 букв из списка.

Python
1
2
3
4
5
6
7
8
9
import itertools
result = open('pas.txt', 'w')
 
def foo(l):
     yield from itertools.product(*([l] * 32))
 
for x in foo('1234567890abcdef'): 
     e = (''.join(x))
     result.write(e+'\n')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2024, 15:40
Помогаю со студенческими работами здесь

Из трех векторов, заданных координатами, найти вектор с наибольшей длиной
Даны три трехмерных вектора a , b и c , заданные своими координатами. Найти вектор с наибольшей длиной. Указание: реализовать функцию,...

Подсчитать количество слов, состоящих из латинских букв, длиной свыше 4 символов
Помогите, пожалуйста!!!

Определить, каких слов в тексте больше: состоящих только из букв, или только из цифр
определить, каких слов в тексте больше состоящих только из букв или только из цифр пока не разобрался со строками

Определить, каких слов в тексте больше, состоящих только из букв или только из цифр
Здравствуйте. Помогите пожалуйста решить програмку. Я тут написал ее, но не правильно, я тут общее кол-во букв и цифр посчитал .а мне...

Нужна программа для генерации пароля из заданных символов
Нужно написать программу для генерации пароля из заданных символов. Например, пользователь вводит нужную длину пароля и символы,которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru