Skip to content

Instantly share code, notes, and snippets.

@danieldiekmeier
Created June 7, 2017 22:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danieldiekmeier/87ef27eddadbcf90519dfc22b3e50b9e to your computer and use it in GitHub Desktop.
Save danieldiekmeier/87ef27eddadbcf90519dfc22b3e50b9e to your computer and use it in GitHub Desktop.
# so definiert man eine Funktion
def permutations(numbers):
# wenn die Liste nur eine Zahl enthält,
# können wir sie direkt zurückgeben
if len(numbers) == 1:
return [numbers]
# die leere Liste hier benutzen wir
# um die Ergebnisse zwischenzuspeichern
result = []
for n in numbers:
# not_n enthält dann alle Zahlen aus numbers, bis auf n
not_n = [m for m in numbers if m != n]
# hier rufen wir wieder die Funktion auf,
# in der wir uns gerade befinden.
# Nur diesmal mit einer Zahl weniger (ohne n)
for p in permutations(not_n):
result.append([n] + p)
return result
numbers = '79 82 34 83 69'.split(' ')
perms = permutations(numbers)
# hier werden nur noch zusammengesetzte Integer aus den Listen gebildet
# zb [['1', '2', '3'], ['2', '3', '1']] zu [123, 231]
results = [int(''.join(p)) for p in perms]
print('min', min(results))
print('max', max(results))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment