Если у меня есть список переменных, например { A , B , C}, и список операторов, например { AND , OR }, как я могу эффективно перечислить все перестановки допустимых выражений? вправо без приоритета операторов):
- A AND B AND C
- A OR B OR C
- A AND B OR C
- A AND C OR B
- B AND C OR A
- A OR B AND C
- A OR C AND B
- B OR C AND A
Я считаю, что это исчерпывающий перечень всех комбинаций входных данных. Я не хочу быть лишним, поэтому, например, я бы не стал добавлять «C OR B AND A», потому что это то же самое, что «B OR C AND A».
Any идеи, как я могу придумать алгоритм для этого? Понятия не имею, с чего начать.