fork download
  1. def pow a, b
  2. res = 1
  3. 1.upto(b) {
  4. |n|
  5. res = res * a
  6. }
  7. res
  8. end
  9.  
  10. def generate_subsets str, n
  11.  
  12. total = pow(2, n)
  13.  
  14. 0.upto(total-1) {
  15. |i|
  16. 0.upto(n-1) { |j|
  17. if (i & (1<<j) != 0)
  18. print str[j]
  19. end
  20. }
  21. print "\n"
  22. }
  23. end
  24.  
  25. def main
  26.  
  27. str = gets.chomp
  28. n = str.length
  29. generate_subsets str, n
  30. end
  31.  
  32. main
Success #stdin #stdout 0.01s 6360KB
stdin
abc
stdout
a
b
ab
c
ac
bc
abc