Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/222: Рейтинг темы: голосов - 222, средняя оценка - 4.71
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844

Перебор всех комбинаций

11.11.2019, 10:18. Показов 41812. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет. Уже два дня бьюсь над одной задачей. В общем, суть в том, что нужно составлять список всех комбинаций из заданных символов, причём комбинация должна быть заданной длины (использоваться будет предположительно для паролей). То есть, на вход подаются символы, из которых может состоять пароль (например, abc) и длина пароля (например, 2). И список должен быть такой: aa, ab, ac, ba, bb, bc, ca, cb, cc. Я нашел реализацию только с библиотекой itertools, но там этот перебор как-то странно работает. Чтобы смотреть на результат, нужно его заворачивать в list(), а когда я задаю большую длину пароля, питон выдает Memory Error, так как кол-во комбинаций в итоге превышает лимит на кол-во элементов в списке. Приблизительно знаю, как писать код для конкретной длины пароля, но во-первых, он получится громоздкий и не красивый, а во-вторых, хотелось бы всё-таки, чтоб программа подстраивались под меня, а не я под неё. Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2019, 10:18
Ответы с готовыми решениями:

Перебор всех комбинаций массива
Суть задачи: Имеется массив с неким количеством людей. Нужно сопоставить каждому человеку другого, пока не будут использованы все...

Перебор комбинаций
Подскажите, как перебрать все возможные комбинации чисел длинной 3, если мы можем использовать для этого числа от 1 до n Например если n...

Перебор комбинаций из 2-х и более элементов
import math integer_ariangles = for a in range(1,100): for b in range(1,100): for c in range(1,100): if...

7
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.11.2019, 10:21
Цитата Сообщение от Matrix3007 Посмотреть сообщение
так как кол-во комбинаций в итоге превышает лимит на кол-во элементов в списке.
ух ты! и это какое же? не подскажешь число?

Цитата Сообщение от Matrix3007 Посмотреть сообщение
но там этот перебор как-то странно работает.
нет, обычный итератор, а вот что это -ты узнаешь когда и если начнешь изучать основы пайтон

Matrix3007, показывай код с Memory Error!
тебе зачем в список заворачивать? выводи в файл поэлементно, потом наслаждайся своими миллиардами
Сколько оперативки на компе?
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
11.11.2019, 10:47  [ТС]
Welemir1, С 8-значными паролями уже не катит. Я знаю, что такое итератор) Код примерно такой:
Python
1
2
3
4
5
from itertools import *
a=input("Символы:\n")
b=int(input("Длина пароля:\n"))
c=product(a, repeat=b)
print(list(c))
На выходе будет список, каждый элемент - отдельный список с каждой буквой в комбинации.
Если не заворачивать в лист, результат будет такой: <itertools.product object at 0x7adfced708>
Чтобы вывести поэлементно, он сначала должен этот список составить, а он на пол пути прерывается.
Сейчас запускаю на телефоне, тут 4гб, на компе 8гб.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.11.2019, 11:00
Лучший ответ Сообщение было отмечено Welemir1 как решение

Решение

Цитата Сообщение от Matrix3007 Посмотреть сообщение
Чтобы вывести поэлементно, он сначала должен этот список составить, а он на пол пути прерывается.
нет. перечитай про итераторы! подсказка
Python
1
2
for i in product():
    # пишем в файл
Добавлено через 57 секунд
Цитата Сообщение от Matrix3007 Посмотреть сообщение
Я знаю, что такое итератор)
вижу что нет, раз в списки их суешь. Они придуманы как раз чтобы НЕ занимать память, читай прямо оттуда и пиши в файл, а матчасть читаем!
а ну или если консоль позволяет (а она НЕ позволяет по умолчанию столько строк выдать), то выводи из итератора в консоль (СПИСОК НЕ СОЗДАЕМ!)
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
11.11.2019, 11:04  [ТС]
Welemir1, Спасибо)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.11.2019, 11:08
Matrix3007, благодарностью мне будет, если ты пойдешь читать)
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
11.11.2019, 12:14  [ТС]
Welemir1, Посоветуй, пожалуйста, что читать. А то столько много всего вокруг, что глаза разбегаются, и непонятно, с чего начать)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.11.2019, 12:35
Matrix3007, Марк Лутц "Изучая пайтон", очень хорошо написана, текста много зато все разжевано: как, что, зачем.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2019, 12:35
Помогаю со студенческими работами здесь

Количество всех комбинаций монет
Запишите программу, которая определит количество всех комбинаций монет (1,5,10,25,50 центов), которыми можно выдать остальные Х в автомате...

Перебор всех возможных комбинаций
Доброго дня. Есть задание, написать брутфорс, по заданному алфавиту. То что представлено ниже, вроде успешно работает, но с 1...

Сортировка/перебор комбинаций символов
Добрейший вечерок! Хотелось бы получить помощь/консультацию/решение задания. Препод ужасно объясняет, поэтому, если можно, то помогите...

Вычисление всех комбинаций
Здраствуйте, уменя такой вопрос: мне надо вычислить все комбинации без повторений(3 из 10) деление (3 из 5), должно выйте 10...

Функция вывода всех возможных комбинаций данных
Дан список z = Как сделать функцию, которая будет выводить возможные комбинации, начиная с 0:


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru