RoomItems = "abab abab abab abab abab abab abab abab abab abab abab abab abab abab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab ab"
DirtyRoom = "ababababababababababababababababababababababababababababaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabbaabb"

RoomItems = sorted(RoomItems.split(" "), key=len)[::-1]

def Yarr(RoomItems, DirtyRoom):
	for Item in RoomItems:
		if all(char in DirtyRoom[0:len(Item)] for char in Item): 
			print Item, DirtyRoom[0:len(Item)]
			RoomItems.remove(Item)
			DirtyRoom = DirtyRoom.replace(DirtyRoom[0:len(Item)],"")+DirtyRoom[0:len(Item)]
			Yarr(RoomItems, DirtyRoom)

Yarr(RoomItems, DirtyRoom)