C#
private List<string> FindOriginals(string input)
{
List<string> result = new List<string>();
if(input.Length % 2 != 0) return result;
int halfSize = input.Length / 2;
for(int i = 0; i < halfSize; i++)
{
string selection = input.Substring(i, halfSize);
if(input.Replace(selection, string.Empty) == selection)
result.Add(selection);
}
return result;
}