Have you ever encountered a situation where you need to generate all permutations, such as generating all arrangements of cards in game design?
Students with a certain foundation in algorithms should be very adept at using the “recursion + backtracking” approach to solve such problems. However, Python has already implemented this for us, with the code being short (only 1 line) and almost 100% correct (unless a quantum event occurs = =), making it highly recommended for use.
Let’s start with some music to set the mood~
Let’s look at an example directly
from itertools import permutations# Generate all permutations (default length equals input sequence length)items = ['a', 'b', 'c']full_perms = permutations(items)print(list(full_perms))# Output: [('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), # ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
For example, generating all permutations of cards that might be used in game design
from itertools import permutationscards = ['J', 'Q', 'K']hands = list(permutations(cards, 2)) # All possible orders of 2 cardsprint(hands)
As the music ends, so does today’s learning session~Recommended Reading
-
Lambda Functions and Sort: Dazzling Sorting Techniques
- Basic Algorithms in Python Programming – Custom Sorting with Lambda Functions and Sort
- Prime Number Determination (Square Root Complexity)
- Basic Algorithms in Python Programming – Prime Number Determination
-
One-liner to Determine Palindromes
-
Python Programming Tips – Checking for Palindromes
-
Using Zip to Merge Two Lists into a Dictionary
-
Python Programming Tips – Merging Lists into a Dictionary with Zip
-
One-liner to Solve Narcissistic Number Determination
-
Basic Algorithms in Python Programming – Narcissistic Number Determination
Here we have programming, algorithms, large models, music (popular/lesser-known), a little focus, come here every day to learn and listen to music~