Python 182 characters
import itertools i,j,v=1,2,[] while i<1000000: v+=[i] i,j=j,i+j y=input() for t in xrange(len(v)+1): for s in itertools.combinations(v,t): if sum(s)==y: print s Sample Run:
>9 (1, 8) (1, 3, 5) 1000 (13, 987) (5, 8, 987) (13, 377, 610) (2, 3, 8, 987) (5, 8, 377, 610) (13, 144, 233, 610) (2, 3, 8, 377, 610) (5, 8, 144, 233, 610) (13, 55, 89, 233, 610) (2, 3, 8, 144, 233, 610) (5, 8, 55, 89, 233, 610) (13, 21, 34, 89, 233, 610) (2, 3, 8, 55, 89, 233, 610) (5, 8, 21, 34, 89, 233, 610) (2, 3, 8, 21, 34, 89, 233, 610) 2048 (1, 5, 13, 55, 377, 1597) (1, 2, 3, 13, 55, 377, 1597) (1, 5, 13, 21, 34, 377, 1597) (1, 5, 13, 55, 144, 233, 1597) (1, 5, 13, 55, 377, 610, 987) (1, 2, 3, 5, 8, 55, 377, 1597) (1, 2, 3, 13, 21, 34, 377, 1597) (1, 2, 3, 13, 55, 144, 233, 1597) (1, 2, 3, 13, 55, 377, 610, 987) (1, 5, 13, 21, 34, 144, 233, 1597) (1, 5, 13, 21, 34, 377, 610, 987) (1, 5, 13, 55, 144, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 377, 1597) (1, 2, 3, 5, 8, 55, 144, 233, 1597) (1, 2, 3, 5, 8, 55, 377, 610, 987) (1, 2, 3, 13, 21, 34, 144, 233, 1597) (1, 2, 3, 13, 21, 34, 377, 610, 987) (1, 2, 3, 13, 55, 144, 233, 610, 987) (1, 5, 13, 21, 34, 55, 89, 233, 1597) (1, 5, 13, 21, 34, 144, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 144, 233, 1597) (1, 2, 3, 5, 8, 21, 34, 377, 610, 987) (1, 2, 3, 5, 8, 55, 144, 233, 610, 987) (1, 2, 3, 13, 21, 34, 55, 89, 233, 1597) (1, 2, 3, 13, 21, 34, 144, 233, 610, 987) (1, 5, 13, 21, 34, 55, 89, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 55, 89, 233, 1597) (1, 2, 3, 5, 8, 21, 34, 144, 233, 610, 987) (1, 2, 3, 13, 21, 34, 55, 89, 233, 610, 987) (1, 2, 3, 5, 8, 21, 34, 55, 89, 233, 610, 987)