fork download
RoomItems = "ab ba abab"
DirtyRoom = "ababaabb"

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)
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
abab abab