Since all images have the same shape, the torch.stack call should work:
list_of_images = [torch.randn(3, 128, 128) for _ in range(10)]
x = torch.stack(list_of_images, 0)
print(x.shape)
> torch.Size([10, 3, 128, 128])

Also, a Dataset with equal shapes works fine:
class PandaDataset(Dataset):
    def __init__(self):
        pass
    
    def __len__(self):
        return 20

    def __getitem__(self, idx):
        list_of_images = []
        tiles = torch.randn(10, 3, 128, 128)
        for img in tiles:
            list_of_images.append(img)
        new_tiles=torch.stack(list_of_images, axis=0)    
        
        return new_tiles, torch.tensor(0)

dataset = PandaDataset()
loader = DataLoader(dataset, batch_size=5)

for data, target in loader:
    print(data.shape)

> torch.Size([5, 10, 3, 128, 128])
torch.Size([5, 10, 3, 128, 128])
torch.Size([5, 10, 3, 128, 128])
torch.Size([5, 10, 3, 128, 128])