import random

X = [] 
Y = []
Z = []
n=3
target = 24;
size = 2;
partitions = [];

def partition(sum, largestNumber, way):
	#print way
#	print "%d\t%d\t" %(sum, largestNumber)
	way.append(largestNumber);
	depth = len(way)
	if (largestNumber ==0):
		return;
	if (sum==0):
		if (depth == size*3):
			partitions.append(way)
			return;	
	if (sum < 0):
		return;
	if(depth >=size*3):
		return;
	way1= ;
	way2=way[:];
	partition(sum, largestNumber -1, way1);
	partition(sum - largestNumber,largestNumber, way2);

def randomInstance():
	n = random.randint(0, len(partitions) -1);
	part = partitions[n];
	print part
	for x in range(0, len(part)):
		j = random.randint(x,len(part)-1);
		temp = part[j]
		part[j] = part[x]
		part[x] = temp
	print part
	return part
			

def main():
	way=[]
	print target
	partition(target, target, way);
	randomInstance()

if __name__ == "__main__":
	main();
