0 / 0 / 0
Регистрация: 14.02.2024
Сообщений: 9

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

14.02.2024, 10:45. Показов 1733. Ответов 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,930
Записей в блоге: 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,930
Записей в блоге: 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
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
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,930
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru