This webpage aims to explore some Python tools for combinatorics. We will use the itertools library for its functions to generate lists of permutations and combinations, as well as the math library for factorial calculations. The Python set object is similar to its mathematical counterpart as it is an unordered collection with no duplicate elements.
A correspondence can be established between certain Python objects and common concepts in set theory:
import itertools
import math
def permutations_full(word:str):
for permutation in itertools.permutations(word):
word=''.join(permutation)
words.append(word)
return (words)
def anagrams(word:str):
words = set()
for permutation in itertools.permutations(word):
word=''.join(permutation)
words.add(word)
return (words)
def anagrams_count(word:str):
count=math.factorial(len(word))
counted_letters = set()
for letter in word:
if letter not in counted_letters:
count = count / math.factorial(word.count((letter)) )
counted_letters.add(letter)
else :
pass
count = int(count)
return count
def combinaisons_without_replacement(word:str,n:int):
return list(itertools.combinations(word,n))
def permutations_partial(word:str,n:int):
return list(itertools.permutations(word,2))
def combinaisons_w_replacement(word:str,n:int):
return list(itertools.combinations_with_replacement(word,2))
Anagrams :
Pascal's triangle :