Advertisement
fmasanori

merlin.py

Nov 25th, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.93 KB | None | 0 0
  1. def enumerações(items):
  2.     n = len(items)
  3.     s = [0]*(n+1)
  4.     k = 0
  5.     while True:
  6.         if s[k] < n:
  7.             s[k+1] = s[k] + 1
  8.             k += 1
  9.         else:
  10.             s[k-1] += 1
  11.             k -= 1
  12.         if k == 0:
  13.             break
  14.         else:
  15.             lista = []
  16.             for j in range(1, k+1):
  17.                 lista.append(items[s[j]-1])
  18.             yield lista
  19.  
  20. def combinações(items, n):
  21.     if n==0: yield []
  22.     else:
  23.         for i in range(len(items)):
  24.             for cc in combinações(items[:i]+items[i+1:],n-1):
  25.                 yield [items[i]]+cc
  26.  
  27. def permutações(items):
  28.     return combinações(items, len(items))
  29. '''
  30. print ('Enumerações')
  31. for p in enumerações(['Jessica', 'Fernanda', 'Pamela', 'Renata']):
  32.    print (p)
  33. '''
  34.  
  35. print ('Permutações')
  36. for p in permutações(['Adriano','Bruno', 'Diogo', 'Eclis', 'Gabriel', 'Leandro', 'Walber']):
  37.     print (p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement