fork download
RoomItems = "a aa b"
DirtyRoom = "aaba"

RoomItems = sorted(RoomItems.split(" "), key=len)

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)],"",1)+DirtyRoom[0:len(Item)]
			Yarr(RoomItems, DirtyRoom)

Yarr(RoomItems, DirtyRoom)
Success #stdin #stdout 0.01s 7852KB
stdin
Standard input is empty
stdout
a a
aa ab